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 相关文章推荐
第1次亲密接触PHP5(2)
Oct 09 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
php基于str_pad实现卡号不足位数自动补0的方法
Nov 12 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
详解Laravel服务容器的绑定与解析
Nov 05 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 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程序实现支持页面后退的两种方法
2008/06/30 PHP
php 设计模式之 单例模式
2008/12/19 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
Python处理文本换行符实例代码
2018/02/03 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python装饰器练习题及答案
2019/11/01 Python
python实现简单颜色识别程序
2020/02/19 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
大学军训感言300字
2014/03/09 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
班风学风建设方案
2014/05/06 职场文书
女性健康讲座主持词
2015/07/04 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫