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 相关文章推荐
文件上传的实现
Oct 09 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
PHP获取photoshop写入图片文字信息的方法
Mar 31 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
完美的php分页类
Oct 24 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 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中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
python在非root权限下的安装方法
2018/01/23 Python
python绘制地震散点图
2019/06/18 Python
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
村委会主任先进事迹
2014/01/15 职场文书
高中体育教学反思
2014/01/29 职场文书
社区八一活动方案
2014/02/03 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
应届大专生求职信
2014/06/26 职场文书
社区服务标语
2014/07/01 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
教师个人教学反思
2016/02/23 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
nginx优化的六点方法
2021/03/31 Servers
MySQL 视图(View)原理解析
2021/05/19 MySQL