-4
$in = $_GET['in'];
print $in;

OK と入力?in=<<<すると、 が出力され<<<ます。しかし、それを行う?in=<<<Aと、印刷<<され、<A一部が欠落します。この特異性の説明は何ですか?それがとであること<<は知っていますが、どういうわけかそれがなくなった理由がわかりません。T_LS<<<T_START_HEREDOC<A

編集:申し訳ありませんが、しばらくの間混乱しました。私の混乱は、コードを次のように評価すると

eval("\$out = $in");

入力する?in=<<<A\nout\nA;\nと、T_LS 構文エラーが発生しました。

私の軽率な質問で申し訳ありません。改造者はこの投稿を削除または閉じることができます。

4

2 に答える 2

2

ブラウザーは を HTML の開始タグとして解釈する<Aため、ページには表示されませんが、ソースにはまだ存在します。

PHPはそれを実行するのではなく文字列として出力するため、ヒアドキュメントやその他のPHP構文であることとは関係ありません。

于 2013-01-08T11:22:34.457 に答える
1

私があなたの質問を編集したのと同じです。<<<A<<あり、アンカータグの開始です<Aしたがって、不正な形式の html が作成されるため、出力には表示されません。htmlentities()関数を使用する必要があります

$data = "<<<A";
echo htmlentities($data);
于 2013-01-08T11:22:17.993 に答える