2016-12-24 8 views
2

PHPをデバッグするための出力エコー文の文字列を画面に表示する方法について完全に混乱しています。PHPで警告をエコーする方法文字列 - 一重引用符と二重引用符との混乱

まず第一に、これは実際に私のために完璧に動作します:

echo "<script type='text/javascript'>alert('Web Site Under Test -- line 344');</script>"; 

これはいわば、コマンドの外側に、エコー文の一部として二重引用符を使用し、警告上の単一引用符ステートメント。そして、それは動作します。

したがって、警告文に文字列変数の内容をどのように送信しますか?私はこれが

echo "<script type='text/javascript'>alert('$admin_ary -- ' $admin_ary);</script>"; 

を動作するはずだと思う

は、私は右ですか?


更新

変数はアレイではなく、文字列です。 だから、例えば

動作しないaddslashesを使用して、この行は:

echo "<script type='text/javascript'>alert('".addslashes($admin_ary." -- ".$admin_ary)."');</script>"; */ 

氏は述べてアラートを生成し

アレイ - アレイ

+0

のように行うことができますaddslashes()としてPHP関数、で、それらをエスケープすることにより、これに対抗することができますか?ここで「はい」を待つよりもずっと早いですね。 –

答えて

2

それについて多くの方法があります。変数は実際の文字列ではなく二重引用符で囲まれた値として渡されます。したがって、あなたはalert('$admin_ary -- $admin_ary');を自由にすることができます(javascript文字列を引用符で囲む必要があるので、singlequoteの移動方法に注意してください)。

ます。また、この

<?php /* Do PHP stuff */ ?> 
<script type="text/javascript">alert('<?php echo $admin_ary." -- ".$admin_ary; ?>');</script> 
<?php /* More PHP stuff */ ?> 

あなた$admin_aryの場合のように、この

echo "<script type='text/javascript'>alert('".$admin_ary." -- ".$admin_ary."');</script>"; 

それとも文字列の大多数のためのPHPの外に移動し、必要な場合にエコーのように、文字列を連結することができます単一引用符'を含む、それはJavaScriptを壊すでしょう。あなたはそれが動作するはずだと思うなら、なぜそれをテストしていないこの

echo "<script type='text/javascript'>alert('".addslashes($admin_ary." -- ".$admin_ary)."');</script>"; 
+1

変数内の文字列をエスケープすることを忘れないでください。それはあなたのjsコードを破ることになります – user489872

+0

それは公正な点です、私は脚注としてそれを編集します。 – Tolios

+0

非常に良い投稿。私はこのソリューションを何度も試してみましたが、あなたが述べたように、文字列変数の内容の一部として単一引用符があるときだけ失敗します。ですから、addslashes()で一重引用符を削除する方法を検討しています。 – xarzu

1
$wstr = 'www'; 
w_js_pure_alert($wstr); 
function w_js_pure_alert($str) 
{ 
    echo '<script>alert("' . $str . '");</script>'; 
} 

function w_js_pure_console($val) 
{ 
    echo '<script>console.log("' . $val . '");</script>'; 
} 

function w_js_window_location($filename) 
{ 
    echo '<script>window.location="' . $filename . '"</script>'; 
} 
関連する問題