-2

私は私のphpコードの中にあります

var_dump($var);

$var ='
<script type="text/javascript">
    '.$var.'
</script>'
;

var_dump($var);

最初var_dumpの値は正しく表示されますが、2番目の値は空の文字列を表示します。

例示的な出力

注意:未定義の変数:3行目の/ code /IdpgMoの varNULL注意:未定義の変数:7行目の/ code /IdpgMoのvarstring (50) "" PHP通知:未定義の変数:3行目の/ code/IdpgMoのvar PHPの注意:未定義の変数: 7行目の/ code/IdpgMoのvar


なんでそうなの?

4

4 に答える 4

3

これは、ブラウザがスクリプトのように処理しているためです。スクリプトは実行されていることが表示されないため、スクリプトはソースにあり、画面に表示されません

于 2013-02-18T17:40:58.720 に答える
3

おそらく、Content-Typeヘッダーをデフォルトのままにして、ドキュメントがHTMLとして処理されているためです。

スクリプト要素は、ページに目に見える影響を与えません。

次の方法でデータを確認できます。

  • データを公開するJSを作成します(ただし、構文的に有効なJSであることを確認する必要があります)。
  • DOMインスペクターの使用
  • ソースの表示
  • header('Content-Type: text/plain');PHPに追加します。
于 2013-02-18T17:41:58.883 に答える
0

HTMLページのソースコードを見てください。vardumpで正しく表示されている場合、これはjavascript構文に関連しているはずです。

于 2013-02-18T17:42:20.283 に答える
0

あなたはおそらく次のようなものを見ているでしょう:

文字列(48) " "

これは、Web ブラウザーがテキストを表示するのではなく、script タグを理解して処理しているためです。

テキストを表示できるようにしたい場合は、htmlentities 関数を使用して、特殊な HTML 文字が変換され、ブラウザがタグとして認識しないようにします。

print htmlentities($var);

于 2013-02-18T17:47:21.573 に答える