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 for 循环语句使用方法详细说明
May 09 PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 PHP
PHP生成随机用户名和密码的实现代码
Feb 27 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
如何让CI框架支持service层
Oct 29 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
php封装好的人民币数值转中文大写类
Dec 20 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
Laravel登录失败次数限制的实现方法
Aug 26 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
如何让您的中波更粗更长 - 中波框形天线制作
2021/03/10 无线电
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
jquery ajaxSubmit 异步提交的简单实现
2014/02/28 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
python unittest实现api自动化测试
2018/04/04 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
详解python编译器和解释器的区别
2019/06/24 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
加拿大最大的书店:Indigo
2017/01/01 全球购物
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
解除劳动合同协议书
2014/04/14 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
个人融资协议书
2014/10/02 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
担保书格式范文
2015/09/22 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python