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


Posted in PHP onJune 19, 2014

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);
PHP 相关文章推荐
PHP图片上传类带图片显示
Nov 25 PHP
php上传文件的增强函数
Jul 21 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
基于php权限分配的实现代码
Apr 28 PHP
PHP写日志的实现方法
Nov 05 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
Oct 20 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
php pdo连接数据库操作示例
Nov 18 PHP
ThinkPHP模板引擎之导入资源文件方法详解
Jun 18 #PHP
ThinkPHP CURD方法之field方法详解
Jun 18 #PHP
ThinkPHP CURD方法之data方法详解
Jun 18 #PHP
ThinkPHP CURD方法之order方法详解
Jun 18 #PHP
ThinkPHP CURD方法之table方法详解
Jun 18 #PHP
ThinkPHP CURD方法之page方法详解
Jun 18 #PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 #PHP
You might like
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
php学习之流程控制实现代码
2011/06/09 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
共享自己写一个框架DreamScript
2007/01/20 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
简单介绍Ruby中的CGI编程
2015/04/10 Python
使用Python生成XML的方法实例
2017/03/21 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
python实现高斯投影正反算方式
2020/01/17 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
制作部班长职位说明书
2014/02/26 职场文书
原材料检验岗位职责
2014/03/15 职场文书
节能减排倡议书
2014/04/15 职场文书
青安岗事迹材料
2014/05/14 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
java代码实现空间切割
2022/01/18 Java/Android
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server