13

PHPコードを文字列に入れるにはどうすればよいですか?

$phpCode = '<? if($condtion){ ?>';

何らかの理由で、これを実行してコードをエコーアウトすると、PHP の開始タグ<?.

何か不足していますか?これを行うためのより良い、またはより適切な方法はありますか? 現在、文字列に関する PHP ドキュメントを参照していますが、フィードバックをお寄せください。

編集: 引用符 ( ) ではなくアソトロフィ ( ')を使用している理由"は、コードに条件の値を入力させたくないためです。そのまま響かせたい。

4

7 に答える 7

12

使用htmlspecialchars():

$phpCode = '<? if($condtion){ ?>';
echo htmlspecialchars($phpCode);
于 2013-04-26T15:28:13.507 に答える
6

必要があるecho htmlspecialchars($phpCode);

于 2013-04-26T15:28:15.033 に答える
0

これにはすでにいくつかの答えがありますが、0.02ドルを追加するだけです...

このコード:

<?php
    $test = '<?php echo "hello world!"; ?>';
    echo $test;
?>

ブラウザーに空白の白い画面が表示されますが、ソースを表示すると、次の出力が表示されます。

<?php echo "hello world!"; ?>

これは、ブラウザが PHP コードをレンダリングする方法に関係しています。ブラウザーは PHP コードをレンダリングするためのものではなく、HTML マークアップをレンダリングするためのものです。ファイルに何が書き込まれるかをテストするためにコードをエコーアウトしている場合は、ソースを表示して、出力されているものがファイルに書き込もうとしているものであることを確認してください。属性?phpをどう処理するかは言うまでもなく、タグをレンダリングする方法がわからないため、ブラウザ自体には表示されません。echo

必要に応じて、誰もが既に述べたようhtmlspecialcharsに、ソースを表示せずにブラウザーでレンダリングすることだけが必要な場合は、文字列を渡すことができます。ファイルに書き込んでいる場合はそうしたくないでしょうが、出力をデバッグするのに役立つ場合があります。

別のオプションは、コマンド ラインからスクリプトを実行することです。出力をレンダリングしようとせず、代わりにそのまま吐き出します。

于 2013-04-27T14:39:53.907 に答える
0

次の方法でPHPコードをテキストとして出力できます

$phpCode = '<? if($condtion){ ?>';
echo "<pre>";
echo htmlspecialchars($phpCode);
echo "</pre>";
于 2013-04-26T16:04:40.940 に答える
-1

Eval php documentation

Eval()文字列内のコードを実行する場合に使用します。

$str = "Hello ";
eval('$str .= "World"');

echo $str;
/* Output: Hello World */
于 2013-04-26T15:32:36.013 に答える