PHP中的多行字符串傳遞給JavaScript的兩種方法
PHP和JavaScript都是初學(xué)。最近有這么個(gè)需求:
比方說(shuō)有一個(gè)PHP的多行字符串:
$a = <<<EOF thy38 csdn blog EOF;
傳遞給JavaScript后要等價(jià)于:
var c='thy38\n\ csdn\n\ blog';
因?yàn)閷?duì)這兩門語(yǔ)言的理解低到不知如何Google,只好自己摸索出方法兩則:
1. 將PHP先轉(zhuǎn)義,然后分割,然后轉(zhuǎn)JSON,然后JavaScript parse,最后用\n拼接。
var b=JSON.parse(<?php echo '\''.json_encode(explode("\r\n", $a)).'\''; ?>).join('\n');
alert(b==c);
2. 在頁(yè)面上安排一個(gè)隱藏的input,然后先由php把值給它,然后JavaScript從它里面讀,就實(shí)現(xiàn)了多行值的傳遞
<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: 以上方法是在跟一個(gè)PHP加JavaScript程序員同學(xué)的討論中逐步得出的。
寫完了文章回頭再想想,其實(shí)這兩個(gè)很繞的方法還是源于對(duì)PHP和JavaScript的多行字符串理解不透。
理解透了也就簡(jiǎn)單了,遠(yuǎn)不用這么復(fù)雜,直接字符串替換就行:
var d=<?php echo '\''.str_replace("\r\n", "\\n\\\n", $a).'\''; ?>;
alert(d==c);
相關(guān)文章
fleaphp crud操作之find函數(shù)的使用方法
fleaphp crud操作之find函數(shù)的用法,需要的朋友可以參考下。2011-04-04
PHP數(shù)組對(duì)象與Json轉(zhuǎn)換操作實(shí)例分析
這篇文章主要介紹了PHP數(shù)組對(duì)象與Json轉(zhuǎn)換操作,結(jié)合實(shí)例形式分析了php數(shù)組對(duì)象與json相互轉(zhuǎn)換的實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
Typecho插件實(shí)現(xiàn)添加文章目錄的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何實(shí)現(xiàn)為Typecho插件實(shí)現(xiàn)添加文章目錄的功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2023-02-02
php字符串替換函數(shù)substr_replace()用法實(shí)例
這篇文章主要介紹了php字符串替換函數(shù)substr_replace()用法,實(shí)例分析了php中substr_replace函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
php強(qiáng)大的時(shí)間轉(zhuǎn)換函數(shù)strtotime
在php中strtotime() 函數(shù)將任何英文文本的日期時(shí)間描述解析為 Unix 時(shí)間戳,這個(gè)函數(shù)也是我們經(jīng)常會(huì)用到的,有需要的朋友參考一下2016-02-02
PHP Memcached應(yīng)用實(shí)現(xiàn)代碼
在很多場(chǎng)合,我們都會(huì)聽到 memcached 這個(gè)名字,但很多同學(xué)只是聽過(guò),并沒有用過(guò)或?qū)嶋H了解過(guò),只知道它是一個(gè)很不錯(cuò)的東東。這里簡(jiǎn)單介紹一下,memcached 是高效、快速的分布式內(nèi)存對(duì)象緩存系統(tǒng),主要用于加速 WEB 動(dòng)態(tài)應(yīng)用程序。2010-02-02

