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中用文本文件做数据库的实现方法
Mar 27 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
Sep 10 PHP
WordPress判断用户是否登录的代码
Mar 17 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
详细解读PHP中接口的应用
Aug 12 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
Laravel实现构造函数自动依赖注入的方法
Mar 16 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
PHP实现权限管理功能示例
Sep 22 PHP
PHP调用接口用post方法传送json数据的实例
May 31 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动态生成VRML网页
2006/10/09 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
js 操作css实现代码
2009/06/11 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
JS中的多态实例详解
2017/10/15 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
情人节活动策划方案
2014/02/27 职场文书
运动员获奖感言
2014/08/15 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
聘任书的格式及模板
2019/10/28 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python