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);

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

傳遞最佳化是幫助Windows更新和Windows應用程式商店更快運作和交付更新的功能。傳遞優化中的快取檔案應該在一段時間後刪除,但對於我們的一些讀者來說,它們不斷堆積並佔用不必要的空間。刪除傳遞優化檔案是否安全?是的,刪除傳遞最佳化檔案是安全的,在本文中,您會發現在Windows11中這樣做非常容易。儘管不建議手動刪除傳遞優化文件,但可以自動執行此操作。如何刪除Windows11上的傳遞最佳化檔案?按一下搜尋欄,鍵入磁碟清理,然後從結果中開啟該工具。如果您有多個驅動器,請選擇具有系統的驅動器(通常是C:

在Python中,字串的連接是一種常見操作,它允許您將兩個或多個字串合併為一個字串。雖然垂直連接字串(即,一個在另一個下方)很簡單,但是橫向連接字串(即,並排放置)需要一些額外的處理,特別是在處理多行字串時。在本文中,我們將探討在Python中執行多行字串的橫向連接的不同方法。 Method1:Usingthe+OperatorThe+operatorcanbeusedtocombinetwoormorestringsintoasinglestring.However,whendea

Go語言中的context套件是用來在程式中傳遞請求的上下文訊息的,它可以在跨多個Goroutine的函數之間傳遞參數、截取請求和取消操作。在Go中使用context包,我們首先需要導入"context"包。下面是一個範例,示範如何使用context包實作請求參數傳遞。 packagemainimport("context"

如何解決Vue報錯:無法使用props傳遞資料前言:在Vue的開發過程中,使用props來進行父子元件之間的資料傳遞是非常常見的。然而,有時候我們可能會遇到一個問題,就是在使用props傳遞資料時,會出現報錯的情況。本文將重點放在如何解決Vue中無法使用props傳遞資料的報錯。問題描述:在Vue開發中,當我們在父元件中使用props來傳遞資料給子元件時,如果

簡介訊息傳遞是一種在專案或執行緒之間傳輸通訊的方法,是分散式系統和平行程式設計中的基本想法。根據實現的特定需求,Java中的消息傳輸可以透過各種方法和結構來完成使用動力源java.util.concurrent容器,它提供了一系列介面和類別庫,用於建立和處理作為活動鎖的線程以及同步機制,是Java中實作傳遞訊息的單一方法,例如實例。例如,Executor介面可以立即使用來執行任務,而BlockingQueue連接可用於在並發進程之間傳遞語句。以上是Java中訊息傳遞的整個流程的流程圖。介面類型Execu

在PHP中,您可以使用和號(&)符號將變數按引用而不是按值傳遞。這樣可以在函數或方法內修改原始變數。主要有兩種方式可以透過引用傳遞PHP變數:使用ampersand符號在函數/方法聲明中使用和符號將變數傳遞給函數/方法時在函數/方法聲明中使用和號在PHP中,您可以使用函數/方法宣告中的和號符號(&)透過引用傳遞變數。以下是更新的解釋:要透過在函數/方法聲明中使用&符號來傳遞引用變量,您需要在函數/方法定義中在參數名稱之前包含&符號。這表示參數應該透過引用傳遞,允許

Go是一個強型別的程式語言,它的函數參數傳遞是按值傳遞的。這意味著當你給函數傳遞參數時,實際上是複製了一份該參數的值,並將該值傳遞給函數進行處理。因此,在Go中使用函數參數傳遞時,需要注意以下幾點:值型別和參考型別的差異在Go中,除了基本資料型別是值型別以外,所有的資料型別都是參考型別。值類型的資料在進行函數參數傳遞時,會複製一份值並傳遞給函數;而引用類型的

C#開發中如何處理分散式事務和訊息傳遞問題及解決方法在分散式系統中,分散式事務和訊息傳遞是常見的問題。分散式事務指的是涉及多個資料庫或服務的事務,而訊息傳遞則指的是系統中不同元件之間的非同步通訊。本文將介紹在C#開發中如何處理這些問題,並提供具體的程式碼範例。一、分散式事務問題及解決方法在傳統的單節點事務中,事務的處理邏輯被封裝在一個資料庫操作中。然而,在分散式
