当前位置: 首页 > 编程笔记 >

PHP中的多行字符串传递给JavaScript的两种方法

松烨烨
2023-03-14
本文向大家介绍PHP中的多行字符串传递给JavaScript的两种方法,包括了PHP中的多行字符串传递给JavaScript的两种方法的使用技巧和注意事项,需要的朋友参考一下

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);
 类似资料:
  • 问题内容: 我正在尝试通过使用JSON格式的字符串初始化Javascript变量来加载数据表。如果我声明: 那么我的表将正确加载该行。 我尝试在脚本之前初始化Java字符串,然后将该对象传递给Javascript变量,如下所示: 我的表无法识别这一点,并且在尝试以这种方式传递行时无法加载该行。如何正确地将Java字符串传递给Javascript,以便我的表能够加载数据? 问题答案: 尝试使用引号。

  • 问题内容: 这个问题已经在这里有了答案 : 如何将变量和数据从PHP传递到JavaScript? (20个答案) 5年前关闭。 编码PHP字符串以输出到JavaScript变量的最简单方法是什么? 我有一个包含引号和换行符的PHP字符串。我需要将此字符串的内容放入JavaScript变量中。 通常,我只是将我的JavaScript构造在一个PHP文件中,例如: 但是,当包含引号或换行符时,这将不起

  • 问题内容: 考虑: 这将回显 vv 。为什么以及如何为诸如SimpleXML等之类的东西做多行字符串? 问题答案: 好, 作品。 您还可以使用以下内容: 要么 根据评论进行编辑: 您可以使用运算符来连接字符串。

  • 我试图将字符串参数传递给JavaScript函数。出于某种原因,它只能获取整数。我在这里只放了字符串的语法,因为我知道这是个问题,因为它与int一起工作。 发送函数内的代码: 最终,我希望用计数器的值调用HTML页面上的以下函数,如上图所示: 正如我提到的,当我发送int时,javascript文件会发出警报,但当我发送字符串时不会做出反应。

  • 问题内容: 感谢您抽出时间来阅读。抱歉,如果我的问题很愚蠢,我尝试搜索,但无法完全弄清楚为什么出现此问题。我试图为另一个应用程序测试一些代码,但是遇到了问题。也许我只是不正确地理解数组。 我在名为Transpose的类中有一个名为halfStepUp的方法,出于测试目的,如果给定“ c”,则应返回“ c#”,如果给定“ d”,则应返回“ d#”。这是代码: 我的主要方法中有以下代码: 这将显示“

  • 这个网页让我相信我可以将一个空字符串传递给,以关闭图形的y记号。 但是,当我尝试这样做时,我得到以下错误: 怎么回事?如果这种关闭y型刻度的方法是不正确的,那么正确的方法是什么?