PHP를 사용하여 변수를 텍스트에 삽입하는 가장 짧은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1219008

  •  10-07-2019
  •  | 
  •  

문제

PHP에 텍스트를 삽입하는 더 짧은 방법이 있는지 궁금합니다.

<?php
$city = "London";
?>
This website is a funky guide to <?php print $city; ?>!!!

예를 들어, Ruby on Rails를 사용하여

city = 'London'

코드 어딘가에, 내 .ERB 파일에서

This website is a funky guide to <%= city %>!!!

나는 그 어딘가에 읽었습니다 {$city} 사용될 수는 있지만 시도해 보았지만 그렇지 않았습니다. 또한 더 짧은 형태가 있습니까? <?php print $var; ?> ?

도움이 되었습니까?

해결책

당신은 사용할 수 있습니다 short_open_tag, 구성에서 활성화되어야하지만 이는 활성화 된 경우에만 작동하기 때문에 모범 사례로 간주되지는 않지만 항상 그렇지는 않습니다. (아마도 기본적으로도)

긴 태그와 에코/프린트를 사용하는 것이 더 길어질 수 있습니다. 그러나 짧은 태그가 아니라 그것들을 사용하는 것이 좋습니다.


또한 데이터가 무관심 소스에서 발생하거나 HTML이 포함되어있을 때 데이터를 피해야 할 수도 있습니다. (보다 htmlspecialchars) :


댓글 후 편집, 몇 가지 사항을 추가하십시오. short_open_tag :

짧은 오픈 태그가 고려되는 이유 (적어도 나에 의해 ^^) 나쁜 연습?

우선, 일부 점검 후 기본적으로 활성화되지 않습니다.

PHP 5.3의 경우 :

squale@shark:~/temp/php/php-5.3.0
$ grep 'short_open_tag' php.ini-development
; short_open_tag
short_open_tag = Off
squale@shark:~/temp/php/php-5.3.0
$ grep 'short_open_tag' php.ini-production
; short_open_tag
short_open_tag = Off

어느 쪽이든 기본적으로 비활성화development" 또는 "production"설정.

php 5.2.10의 경우 (PHP 5.2의 가장 최근 버전) :

squale@shark:~/temp/php/php-5.2.10
$ grep 'short_open_tag' php.ini-dist
short_open_tag = On
squale@shark:~/temp/php/php-5.2.10
$ grep 'short_open_tag' php.ini-recommended
; - short_open_tag = Off           [Portability]
short_open_tag = Off

"기본적으로"recommended"설정


이러한 기본 설정을 고려하는 것은 때때로입니다 (자주 ?) 서비스를 주최함으로써 의존하는 것은 위험합니다. short_open_tag 활성화되고 있습니다.
(나는 장애가있는 사람들에게 문제가 생겼습니다 ... 그리고 당신이 서버의 관리자가 아니고 그것을 수정하기 위해 권한이 필요하지 않은 경우, 그것은 재미 있지 않습니다 ^^)

숫자를 원한다면 살펴볼 수 있습니다. 빠른 표현 : short_open_tag 기본적으로 켜지거나 끄기?
(과학적 증거는 아니지만 대중에게 공개 할 응용 프로그램에 사용하는 것이 위험 할 수 있음을 보여줍니다).


당신이 말했듯이, 활성화 될 때 XML 선언과 충돌하는 사람들은 다음과 같은 것을 사용해야한다는 것을 의미합니다.

<?php echo '<?xml version="1.0" encoding="UTF-8" ?>'; ?>

짧은 오픈 태그를 고려하여 사용하는 서버에서 활성화 될 수 있습니다. <?xml 그래도 항상; 너무 나쁘다 :-(


실제로 PHP 5.2.10의 php.ini 권장을 통해 읽으십시오.

; Allow the <? tag.  Otherwise, only <?php and <script> tags are recognized.
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.

PHP 6의 하나는 더욱 흥미 롭습니다.

; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.

(PHP 5.3에서 동일 할 수 있습니다. 확인하지 않았다)


가 있었다 소문 PHP 6에서 짧은 오픈 태그를 제거 할 수 있습니다. 내가 방금 게시 한 php.ini의 부분을 고려할 때, 아마도 ...하지만 여전히 ...


다른 방향을 가리키는 주장을 제시하려면 (결국 정직해야합니다) : 짧은 열린 태그 사용 템플릿 파일의 경우 (뿐) 템플릿 파일을 사용하는 Zend Framework의 예제에서 종종 수행되는 것입니다.

예제와 문서에서 PHP 짧은 태그를 사용합니다.

즉, 많은 개발자들은 검증 또는 이식성을 위해 전체 태그를 사용하는 것을 선호합니다. 예를 들어, short_open_tag는 php.ini.recomembended 파일에 비활성화되어 있으며, 뷰 스크립트에서 XML을 템플릿하면 짧은 열기 태그로 인해 템플릿이 유효성 검사에 실패합니다.

(원천)

반대로 .php 파일 :

짧은 태그는 허용되지 않습니다. PHP 코드 만 포함 된 파일의 경우 닫기 태그를 항상 생략해야합니다.

(원천)


그 정보가 유용하기를 바랍니다. :-)

다른 팁

PHP 모드를 벗어나면 변수를 인쇄하는 유일한 방법은 다시 전환하여 위와 같이 인쇄하는 것입니다. PHP 모드에 머무르고 시도한 {} 구조를 사용할 수 있습니다.

<?php
$city = "London";
echo "This website is a funky guide to {$city}!!!";
?>

{$ city}를 사용할 수있는 곳에서 읽었습니다.

다음과 같은 템플릿 엔진을 사용하는 경우 똑똑합니다 당신은 이것을 할 수 있습니다. 팀에서 개발 중이며 일부는 PHP를 모른다면 유용 할 수 있습니다.

그렇지 않으면 짧은 태그가 활성화되어 있다고 가정 할 때 가장 짧은 것은 다음과 같습니다.

<?=$city?>

그렇지 않거나 다른 사람에게 재분배 할 앱을 만들면 다음을 사용하십시오.

<?php echo $city ?>

PHP 블록을 확장하고 다음을 수행하십시오.

<?php
$city = 'London';
echo 'This website is a funky guide to ',$city,' !!!';
?>

또는 '' '대신 ""를 사용할 수 있습니다. ',$city,' ~와 함께 $city, 그러나 변수를 구문 분석하는 데 더 많은 CPU 시간이 걸립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top