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网上调查系统
Oct 09 PHP
PHP获得用户使用的代理服务器ip即真实ip
Dec 31 PHP
PHP学习笔记之二 php入门知识
Jan 12 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
Jun 18 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
php对数组内元素进行随机调换的方法
May 12 PHP
php简单实现批量上传图片的方法
May 09 PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
利用Laravel生成Gravatar头像地址的优雅方法
Dec 30 PHP
PHP实现的日历功能示例
Sep 01 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+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
js同源策略详解
2015/05/21 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
Python深入学习之内存管理
2014/08/31 Python
在Python中使用成员运算符的示例
2015/05/13 Python
Python2包含中文报错的解决方法
2018/07/09 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
Python for循环与getitem的关系详解
2020/01/02 Python
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
附答案的Java面试题
2012/11/19 面试题
师范大学音乐表演专业求职信
2013/10/23 职场文书
求职简历的自我评价
2014/01/31 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
横幅标语大全
2014/06/17 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
离婚代理词范文
2015/05/23 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书