程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP中的多行字符串傳遞給JavaScript的兩種方法

PHP中的多行字符串傳遞給JavaScript的兩種方法

編輯:PHP綜合

PHP和JavaScript都是初學。最近有這麼個需求:

比方說有一個PHP的多行字符串:

$a = <<<EOF 
thy38 
csdn 
blog 
EOF;

傳遞給JavaScript後要等價於:

var c='thy38\n\ 
csdn\n\ 
blog';

因為對這兩門語言的理解低到不知如何Google,只好自己摸索出方法兩則:

1. 將PHP先轉義,然後分割,然後轉JSON,然後JavaScript parse,最後用\n拼接。

var b=JSON.parse(<?php echo '\''.json_encode(explode("\r\n", $a)).'\''; ?>).join('\n'); 
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\n", $a)).'\''; ?>).join('\n'); 
alert(a==b); 
alert(b==c); 

PS: 以上方法是在跟一個PHP加JavaScript程序員同學的討論中逐步得出的。
寫完了文章回頭再想想,其實這兩個很繞的方法還是源於對PHP和JavaScript的多行字符串理解不透。
理解透了也就簡單了,遠不用這麼復雜,直接字符串替換就行:

var d=<?php echo '\''.str_replace("\r\n", "\\n\\\n", $a).'\''; ?>; 
alert(d==c);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved