ホームページ バックエンド開発 PHPチュートリアル PHP の複数行の文字列を JavaScript_PHP に渡す 2 つの方法 チュートリアル

PHP の複数行の文字列を JavaScript_PHP に渡す 2 つの方法 チュートリアル

Jul 13, 2016 am 10:24 AM
移行 複数行の文字列

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(<&#63;php echo '\''.json_encode(explode("\r\n", $a)).'\''; &#63;>).join('\n'); 
alert(b==c); 
ログイン後にコピー

2. 在页面上安排一个隐藏的input,然后先由php把值给它,然后JavaScript从它里面读,就实现了多行值的传递

<input type="hidden" id='testphp' value="<&#63;php echo $a&#63;>" /> 
var a=document.getElementById("testphp").value; 
var b=JSON.parse(<&#63;php echo '\''.json_encode(explode("\r\n", $a)).'\''; &#63;>).join('\n'); 
alert(a==b); 
alert(b==c); 
ログイン後にコピー

PS: 以上方法是在跟一个PHP加JavaScript程序员同学的讨论中逐步得出的。
写完了文章回头再想想,其实这两个很绕的方法还是源于对PHP和JavaScript的多行字符串理解不透。
理解透了也就简单了,远不用这么复杂,直接字符串替换就行:

var d=<&#63;php echo '\''.str_replace("\r\n", "\\n\\\n", $a).'\''; &#63;>; 
alert(d==c);
ログイン後にコピー

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/825410.htmlTechArticlePHP和JavaScript都是初学。最近有这么个需求: 比方说有一个PHP的多行字符串: $a = EOF thy38 csdn blog EOF; 传递给JavaScript后要等价于: var c='thy...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11 の配信最適化ファイルとは何ですか? 削除できますか? Windows 11 の配信最適化ファイルとは何ですか? 削除できますか? Sep 29, 2023 pm 04:09 PM

配信の最適化は、Windows Update と Windows ストアの実行と更新の配信を高速化するのに役立つ機能です。配信の最適化のキャッシュ ファイルはしばらくすると削除されることになっていますが、一部の読者にとってキャッシュ ファイルは蓄積され続け、不必要なスペースを占有します。配信最適化ファイルを削除しても安全ですか?はい、配信最適化ファイルを削除しても安全です。この記事では、Windows 11 でそれがいかに簡単であるかを説明します。配信最適化ファイルを手動で削除することはお勧めできませんが、自動的に削除することは可能です。 Windows 11 で配信最適化ファイルを削除するにはどうすればよいですか?検索バーをクリックし、「ディスク クリーンアップ」と入力し、結果からツールを開きます。複数のドライブがある場合は、システムのドライブを選択します (通常は C:

Python での複数行文字列の水平連結 Python での複数行文字列の水平連結 Aug 27, 2023 pm 11:49 PM

Python では、文字列の連結は、2 つ以上の文字列を 1 つの文字列に結合できる一般的な操作です。文字列を垂直方向に連結する (つまり、文字列を上下に) 連結するのは簡単ですが、文字列を水平方向に (つまり、並べて) 連結するには、特に複数行の文字列を扱う場合、追加の処理が必要になります。この記事では、Python で複数行の文字列の横方向連結を実行するさまざまな方法を検討します。方法 1:+ 演算子を使用する + 演算子は、2 つ以上の文字列を 1 つの文字列に結合するために使用できます。

Goでコンテキストを使用してリクエストパラメータを渡す方法 Goでコンテキストを使用してリクエストパラメータを渡す方法 Jul 22, 2023 pm 04:43 PM

Go 言語のコンテキスト パッケージは、プログラム内でリクエスト コンテキスト情報を渡すために使用され、パラメータを渡したり、リクエストをインターセプトしたり、複数のゴルーチンにわたる関数間の操作をキャンセルしたりできます。 Go で context パッケージを使用するには、まず「context」パッケージをインポートする必要があります。以下は、コンテキスト パッケージを使用してリクエスト パラメーターの受け渡しを実装する方法を示す例です。 packagemainimport("コンテキスト"

Vue エラーの解決方法: データを渡すために props を使用できません Vue エラーの解決方法: データを渡すために props を使用できません Aug 17, 2023 am 10:06 AM

Vue エラーの解決方法: データを渡すために props を使用できません はじめに: Vue の開発プロセスでは、props を使用して親コンポーネントと子コンポーネント間でデータを転送することが非常に一般的です。ただし、場合によっては、小道具を使用してデータを渡すときにエラーが発生するという問題が発生することがあります。この記事では、Vue でデータを渡すために props を使用できないというエラーを解決する方法に焦点を当てます。問題の説明: Vue 開発で、親コンポーネントで props を使用して子コンポーネントにデータを渡すとき、

Java でのメッセージング Java でのメッセージング Aug 26, 2023 pm 10:13 PM

はじめに メッセージ パッシングは、アイテムまたはスレッド間で通信を送信する方法であり、分散システムおよび並列プログラミングの基本的な考え方です。実装の特定のニーズに応じて、Java でのメッセージ転送は、スレッドをアクティブ ロックとして確立して処理するための一連のインターフェイスとクラス ライブラリを提供する電源 java.util.concurrent コンテナを使用するさまざまなメソッドと構造を通じて実現できます。同期メカニズムは、インスタンスなどのメッセージ配信を実装する Java の単一メソッドです。たとえば、Executor インターフェイスを使用してタスクをすぐに実行でき、BlockingQueue 接続を使用して同時プロセス間でステートメントを渡すことができます。上記は、Java でのメッセージ パッシングのプロセス全体のフローチャートです。インターフェイスの種類Execu

PHP変数を参照によって渡す方法 PHP変数を参照によって渡す方法 Aug 26, 2023 am 09:01 AM

PHP では、アンパサンド (&) 記号を使用して、値ではなく参照によって変数を渡すことができます。これにより、関数またはメソッド内で元の変数を変更できるようになります。 PHP 変数を参照渡しするには、主に 2 つの方法があります。 アンパサンド記号を使用する 関数/メソッド宣言でアンパサンド記号を使用する 関数/メソッド宣言でアンパサンド記号を使用する 関数/メソッドに変数を渡す場合、PHP では関数/ アンパサンド記号 ( &) メソッド宣言で変数を参照渡しします。更新された説明は次のとおりです。関数/メソッド宣言で & 記号を使用して参照変数を渡すには、関数/メソッド定義のパラメーター名の前に & 記号を含める必要があります。これは、パラメーターが参照によって渡される必要があることを示します。

C# 開発における分散トランザクションとメッセージ パッシングの問題と解決策に対処する方法 C# 開発における分散トランザクションとメッセージ パッシングの問題と解決策に対処する方法 Oct 10, 2023 am 11:42 AM

C# 開発における分散トランザクションとメッセージ パッシングの問題と解決策に対処する方法: 分散システムでは、分散トランザクションとメッセージ パッシングが一般的な問題です。分散トランザクションは複数のデータベースまたはサービスに関係するトランザクションを指しますが、メッセージングは​​システム内の異なるコンポーネント間の非同期通信を指します。この記事では、C# 開発におけるこれらの問題への対処方法と具体的なコード例を紹介します。 1. 分散トランザクションの問題と解決策 従来の単一ノード トランザクションでは、トランザクション処理ロジックはデータベース操作にカプセル化されています。ただし、分散型では

Goで関数の引数を渡すにはどうすればよいですか? Goで関数の引数を渡すにはどうすればよいですか? May 11, 2023 pm 05:00 PM

Go は厳密に型指定されたプログラミング言語であり、その関数パラメータは値によって渡されます。これは、パラメーターを関数に渡すとき、実際にはパラメーターの値のコピーを作成し、その値を処理のために関数に渡していることを意味します。したがって、Go で関数の引数の受け渡しを使用する場合は、以下の点に注意する必要があります。 値型と参照型の違い Go では、基本データ型である値型を除き、すべてのデータ型が参照型になります。値型のデータが関数のパラメータとして渡されると、値のコピーがコピーされて関数に渡されますが、参照型のデータは関数のパラメータとして渡されます。

See all articles