program tip

PHP 에코 대 PHP 짧은 태그

radiobox 2020. 12. 3. 07:45
반응형

PHP 에코 대 PHP 짧은 태그


안전성면에서 동등합니까? 나는

<?=$function_here?>

덜 안전하고 페이지로드 시간이 느려집니다. 나는 에코를 사용하는 데 엄격하게 편향되어 있습니다.

장점 / 단점은 무엇입니까?


<?그리고 <?=짧은 열린 태그라고하며, 항상 (참조 사용할 수 없습니다 short_open_tag아래 PHP 5.3 (그러나 PHP 5.4.0 이후로 지침)을 <?=사용할 수 항상).

실제로 PHP 5.3.0과 함께 제공되는 php.ini-production 파일에서는 기본적으로 비활성화되어 있습니다.

$ grep 'short_open' php.ini-production
; short_open_tag
short_open_tag = Off

따라서 배포하려는 응용 프로그램에서 사용하는 것은 좋은 생각이 아닐 수 있습니다. 사용하지 않으면 응용 프로그램이 작동하지 않습니다.

<?php반면에는 비활성화 할 수 없습니다. 따라서 쓰기 시간이 더 길더라도 이것을 사용하는 것이 가장 안전합니다.


짧은 오픈 태그가 반드시 활성화 된 것은 아니라는 점을 제외하고는 큰 차이가 없다고 생각합니다.


Echo는 일반적으로 사용하는 것이 더 좋습니다.

  1. 좋은 프로그래밍 스타일을 지원합니다.
  2. php.ini에서는 끌 수 없습니다 (짧은 태그도 가능).
  3. 짧은 태그는 PHP 6에서 제거됩니다.)

그러나 일반적으로 동일합니다. 또한보십시오:

  1. PHP 짧은 태그를 사용할 수 있습니까?
  2. PHP에서 echo와 print는 어떻게 다릅니 까?

짧은 태그를 사용하는 것이 좋은 아이디어인지 아닌지, 그리고 더 이상 사용되지 않는 것으로 간주되어야하는지 여부에 대한 전체 반 종교적 논쟁을 제외하고, 원래의 질문은 그들이 사용하는 것이 얼마나 안전한지 위험한 지에 관한 것이 었습니다.

간단히 말해서, 짧은 태그를 지원하지 않는 서버에서 사용하면 보안 취약점으로 간주 될 수있는 PHP 코드의 일부가 노출 될 수 있습니다.


http://php.net/manual/en/language.basic-syntax.phpmode.php 상태 :

PHP 5.4부터 짧은 에코 태그는 short_open_tag설정에 관계없이 항상 인식되고 유효 합니다.

short_open_tag 끄기 또는 켜기는 더 이상 중요하지 않습니다.

이제 걱정없이 템플릿에 다음과 같은 태그를 넣을 수 있습니다.

    <?= (($test) ? "val1" : "val2") ?>

이제 공식적으로 "짧은 에코 태그"는 "짧은 태그"와는 매우 다른 것입니다.


PSR의 다른 소스를 광고하기 위해 : http://www.php-fig.org/psr/psr-1/

PHP 코드는 반드시 긴 태그 또는 짧은 에코 태그를 사용해야합니다. 다른 태그 변형을 사용해서는 안됩니다.

지정 :

 <?php ?> and <?= ?>

따라서 짧은 오픈 태그를 끄고 기본적으로 활성화하는 옵션을 제거하지 않는 이유는 무엇입니까?

이것은 PHP의 매우 위험한 움직임입니다. 그 이유는 짧은 태그가있는 기존 코드를 PHP6 서버에 넣고 누군가 해당 페이지를 보는 경우 브라우저에 원시 코드를 다운로드하여 볼 수 있기 때문입니다. 이것은 PHP를 심각하게 죽일 수 있습니다.


<\? =를 사용하고 sysadmin / 호스트에게 short_open_tags를 켜달라고 요청해야합니다. 꺼야 할 단점이 없으며 속도 저하도 없습니다. 파서가 <\? 색인 내부에서 <\? php를 찾는 것과 같은 방식으로 바이너리 검색 (아마도

또한 이미 PHP 5.5에서는 <\? =이 기본적으로 켜져 있고 장기적으로는 <\? =이 선호되고 <\? php echo semi는 더 이상 사용되지 않습니다.

아직 surte가 아니라면 .. 약간의 인터넷 검색이 많은 도움이됩니다 = D

참고 URL : https://stackoverflow.com/questions/1386620/php-echo-vs-php-short-tags

반응형