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 相关文章推荐
模仿OSO的论坛(三)
Oct 09 PHP
php adodb分页实现代码
Mar 19 PHP
PHP小程序自动提交到自助友情连接
Nov 24 PHP
php 无限分类的树类代码
Dec 03 PHP
Views rows style模板重写代码
May 16 PHP
PHP删除数组中空值的方法介绍
Apr 14 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 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 Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
Python中for循环和while循环的基本使用方法
2015/08/21 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Django 路由层URLconf的实现
2019/12/30 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
单位人事专员介绍信
2014/01/11 职场文书
《月迹》教学反思
2014/02/19 职场文书
导游个人求职信范文
2014/03/23 职场文书
法制宣传月活动方案
2014/05/11 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
网吧员工管理制度
2015/08/05 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis