PHPの複数行の文字列をJavaScriptに渡す2つの方法
PHPとJavaScriptは全部初学です。最近このような需要があります。
例えばPHPの複数行の文字列があります。
1.PHPを先に意味を変えて、それを分割してJSONに回して、その後JavaScript parseを最後にスティッチングします。
文章を書き終わったら後で考えてみますが、実はこの二つの回りくどい方法はやはりPHPとJavaScriptの複数行の文字列がよく理解できないからです。
理解すれば簡単です。こんなに複雑ではなく、直接文字列を置き換えればいいです。
例えばPHPの複数行の文字列があります。
$a = <<<EOF
thy38
csdn
blog
EOF;
JavaScriptに伝えた後は、
var c='thy38
\
csdn
\
blog';
この二つの言語に対する理解が低いので、Googleはどうすればいいか分かりません。自分で方法を模索するしかないです。1.PHPを先に意味を変えて、それを分割してJSONに回して、その後JavaScript parseを最後にスティッチングします。
var b=JSON.parse(<?php echo '\''.json_encode(explode("\r
", $a)).'\''; ?>).join('
');
alert(b==c);
2.ページに隠しinputを配置し、まずphpで値を与え、その後JavaScriptはその中から読んで、複数行の値の伝達を実現しました。
<input type="hidden" id='testphp' value="<?php echo $a?>" />
var a=document.getElementById("testphp").value;
var b=JSON.parse(<?php echo '\''.json_encode(explode("\r
", $a)).'\''; ?>).join('
');
alert(a==b);
alert(b==c);
PS:以上の方法はPHPプラスJavaScriptプログラマとの討論の中で徐々に得られました。文章を書き終わったら後で考えてみますが、実はこの二つの回りくどい方法はやはりPHPとJavaScriptの複数行の文字列がよく理解できないからです。
理解すれば簡単です。こんなに複雑ではなく、直接文字列を置き換えればいいです。
var d=<?php echo '\''.str_replace("\r
", "\
\\
", $a).'\''; ?>;
alert(d==c);