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 选项及相关信息函数库
Dec 04 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
php的sso单点登录实现方法
Jan 08 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
Yii数据库缓存实例分析
Mar 29 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
PHP 类与构造函数解析
Feb 06 PHP
php file_get_contents取文件中数组元素的方法
Apr 01 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
PHP实现唤起微信支付功能
Feb 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
深入解析PHP的引用计数机制
2013/06/14 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
不同浏览器的怪癖小结
2010/07/11 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
python实现的各种排序算法代码
2013/03/04 Python
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
详解Python中的日志模块logging
2015/06/19 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
vscode调试django项目的方法
2020/08/06 Python
Python 解析xml文件的示例
2020/09/29 Python
党的群众路线教育实践方案
2014/05/11 职场文书
医药销售自我评价200字
2014/09/11 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python