2009-09-23 10 views
5

PHP를 사용하여 php.ini를 templatizing합니다. CLI PHP 스크립트를 사용하여 템플릿에서 httpd.conf, apachectl 및 php.ini를 생성하여 개발 환경을 설정하는 스크립트가 있습니다. 불행히도 php.ini에는 문자로 <?<?php 문자열이 있습니다 (주석에 있음). php가 정상적인 PHP 이스케이프 문자열로 해석하지 않도록 어떻게 든 이스케이프가 가능합니까?리터럴을 이스케이프 처리하려면 <? php 및 <? PHP 스크립트

; This directive determines whether or not PHP will recognize code between 
; <?php echo "<? 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 echo "<?php and ?>" ?> tag combination. With the wide spread use 
; 

답변

9

이 :

<?php echo "<?php"; ?> 

윌 출력 :

<?php 

현재 내 해결 방법은 다음과 같이 문자열로를 출력하는 실제 PHP 이스케이프 시퀀스에서 그들을 래핑하는 것입니다

+0

Works. 실제로' rinogo

+1

아니요. 그것을 할 방법이 없습니다. – gahooa

0

빠른 & 간단한 해결책은 php.ini와 주석 내부의 모든 것을 고유 한 마커로 바꾸십시오. 파일을 파싱 한 후 해당 마커를 해당 PHP 태그로 다시 바꾸기 만하면됩니다.

1

<?php 
echo <<< EOF 
<?php echo "stuff inside php tag"; ?> 
EOF; 
?> 

을 다음과 같이 전체 INI 내부 히어 닥을 포장 수있는 출력은 페이지 렌더링하지만 페이지 소스에 표시하지 않는 경우
하거나 태그를 HTML 인코딩을 사용할 수 있습니다

&lt;?php echo 'this'; ?&gt; 

나는 당신이 더 잘 어울릴 것이라고 생각합니다.
그 일을하지 않으면 아스키 인코딩을 사용할 수 있습니다.

+2

"이름이 뭔지 모르겠다"-> "Heredoc" – Charles

+0

출력이 HTML 일 경우에만 HTML 인코딩이 작동합니다. 그건 아니야 - php.ini 파일 야. – nohat

+0

네, 그렇게 생각했습니다. – andho