這可能有點不尋常,但我需要回顯<?php
。不過,我認爲PHP將它視爲實際的<?php
並開始執行代碼,而不是將其視爲字符串。我如何逃避<?php
和?>
,以便將它們視爲字符串?手冊中沒有關於此的內容。我需要逃避嗎?
謝謝,我知道這有點不尋常。
這可能有點不尋常,但我需要回顯<?php
。不過,我認爲PHP將它視爲實際的<?php
並開始執行代碼,而不是將其視爲字符串。我如何逃避<?php
和?>
,以便將它們視爲字符串?手冊中沒有關於此的內容。我需要逃避嗎?
謝謝,我知道這有點不尋常。
您可以使用<
和>
HTML實體(替換 '<' 和 '>')。這些只能在瀏覽器中處理,所以PHP不會嘗試運行該代碼。
如果它們在字符串中回顯,它們將不會被執行。
亦不會顯示在屏幕上使用'回聲「」(當然不是我的機器Ubuntu9.10,Apache2.2.12,PHP5.2上);' –
2009-11-11 18:44:39
@ricebowl這似乎是我的問題,我不是看到任何東西 – Cyclone 2009-11-11 18:45:33
Nah。代碼應該被執行,或者在源代碼中可見。你確定它不是? – 2009-11-11 18:50:30
只使用ヶ輛功能
如何做到這一點? – Cyclone 2009-11-11 18:36:21
'echo htmlentities(「<?php」)' – 2009-11-11 18:39:06
在HTML,
<?php
或者在PHP中:?
echo htmlentities('<?php');
< PHP的回聲 「?< PHP的echo \」 你好\ 「>?」? >
打印出來<?php echo「hello」? >
查看PHP的函數源代碼,瞭解它們如何打印數據。
http://in2.php.net/source.php?url=/manual/en/function.htmlentities.php
如果這是你的代碼:
<?php
echo '<?php';
?>
,並且在運行,作爲一個網頁,你會看到什麼。但不是因爲PHP沒有迴應你的字符串<?php
,而是因爲瀏覽器看到<
,並認爲這是標籤的開始,並且標籤不顯示。這顯然是一個錯誤,但這就是瀏覽器正在做的事情。
要解決這個問題,逃避<
部分,使用htmlentities()
:
<?php
echo htmlentities('<?php');
?>
,當它得到呼應,將導致HTML來源:哪些顯示在瀏覽器時
<php
顯示:
<?php
echo '<?php ?>'; // prints <?php ?>
echo "<?php ?>"; // prints <?php ?>
不,你不需要做任何特別的事情。
如果我想寫入文件,這項工作是否可行? – Cyclone 2009-11-11 18:39:15
需要更多信息。我不明白爲什麼不這樣。 – 2009-11-11 18:40:13
我正在嘗試動態生成一個php文件,並且它需要能夠編寫它。當我嘗試它時,它根本不起作用...... – Cyclone 2009-11-11 18:41:10