2009-09-23 6 views
5

Tôi đang tạo khuôn mẫu cho php.ini của mình bằng cách sử dụng PHP. Tôi có một kịch bản để thiết lập một môi trường phát triển bằng cách tạo ra httpd.conf, apachectl và php.ini từ các khuôn mẫu bằng cách sử dụng một kịch bản lệnh PHP CLI. Rất tiếc, có các chuỗi <?<?php bằng chữ trong php.ini (trong nhận xét). Có thể để thoát khỏi những người nào đó vì vậy php không giải thích chúng như là trình tự thoát PHP bình thường?Thoát một <? Php và <? trong một tập lệnh PHP

Hiện nay workaround của tôi là để bọc chúng trong một dãy thoát thực PHP xuất chúng như là một chuỗi, như thế này:

; 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 
; 

Trả lời

9

này: đầu ra

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

Will:

<?php 
+0

Hoạt động. Không có cách nào thực sự thoát được ' rinogo

+1

Không. Không có cách nào để làm điều đó. – gahooa

0

Nhanh chóng & giải pháp đơn giản sẽ tìm kiếm qua php.ini và thay thế tất cả trong các bình luận với các đánh dấu duy nhất, sau khi tệp đã được phân tích cú pháp, chỉ cần thay thế các dấu hiệu duy nhất đó trở lại bằng thẻ php tương ứng.

1

Bạn có thể bọc toàn bộ heredoc bên ini như sau

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

nào khi đầu ra không render trong trang nhưng xuất hiện trên mã nguồn trang web
hoặc bạn có thể sử dụng mã hóa html cho các thẻ

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

Tôi nghĩ rằng sau này sẽ phù hợp với bạn tốt hơn.
Nếu điều đó không thực hiện được công việc bạn có thể sử dụng mã hóa ASCII mà tôi không biết nhiều về

+2

"Loại EOF thingy mà tôi không biết tên" -> "Heredoc" – Charles

+0

Mã hóa HTML sẽ chỉ hoạt động nếu đầu ra là HTML. Nó không phải - đó là một tập tin php.ini – nohat

+0

Vâng tôi đã nghĩ như vậy. – andho