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 mysql数据库操作分页类
Jun 04 PHP
PHP 存储文本换行实现方法
Jan 05 PHP
php microtime获取浮点的时间戳
Feb 21 PHP
php全局变量和类配合使用深刻理解
Jun 05 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
PHP+Mysql无刷新问答评论系统(源码)
Dec 20 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
PHP压缩图片功能的介绍
Mar 21 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
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
2007/02/03 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
详解webpack babel的配置
2018/01/09 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
Python获取文件ssdeep值的方法
2014/10/05 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
python绘制简单折线图代码示例
2017/12/19 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python中turtle库的简单使用教程
2020/11/11 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
儿园租房协议书范本
2014/12/02 职场文书
楚门的世界观后感
2015/06/03 职场文书
班主任寄语2016
2015/12/04 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python
讲解Python实例练习逆序输出字符串
2022/05/06 Python