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中的多行字符串传递给JavaScript方法两则的更多相关文章

  1. MaxPlus WStr Python 中的字符串传递给 MaxPlus

    MaxPlus WStr Python 中的字符串传递给 MaxPlus 在 MaxPlus 中,很多方法的参数使用的字符串的类是 WStr,所以在 Python 中,我们传递字符串的时候,就要把 P ...

  2. linux grep find查找文件夹、代码中的某行/字符串

    本文转载于:https://blog.csdn.net/Mr_Cat123/article/details/80541658 在Linux中,由于文件很多,代码很长,可能我们只知道其中的一两个字符串, ...

  3. SPSS提示“列表中不同意存在字符串变量”的解决方法

    今天用SPSS对一些数据进行主成分分析,SPSS 19.0进行主成分分析的方法是:分析--降维--因子分析,可是当导入一些变量的时候.就会弹出窗体说"列表中不同意存在字符串变量", ...

  4. Android中通过WebView控件实现与JavaScript方法相互调用的地图应用

    在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...

  5. java json字符串传递给 js 时 特殊字符转义错误 研究

    一些换行 回车等符号需要转义 主要注意 单引号 与双引号. 一 如果js以 双引号接收字符串 则转单引号 "  至 \" 否则js报错 二 如果js以 单引号接收字符串 则转单引号 ...

  6. WPF 在画布中布局N行N列的实现方法

    最近写一个WPF项目,中间有一个实现在画布中排列的问题(整齐摆列几行几列的算法).本人逻辑有点差啊,废了老大功夫才实现,也没啥就牛逼的,就是拿出来分享一下,给需要的同学节省点时间,如果有用的话别忘赞一 ...

  7. 【C#】判断字符串中是否包含指定字符串,contains与indexof方法效率问题

    #方法一:使用string.Contains方法 string.Contains是大小写敏感的,如果要用该方法来判断一个string是否包含某个关键字keyword,需要把这个string和这个key ...

  8. C#中使用split分割字符串的几种方法小结

    1.用字符串分隔: using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[] sArray= ...

  9. 如何将php数组或者对象传递给javascript

    在网上搜了一些方法,最后自己采用的是通过json字串的方式. 假设有一个php 数组 $arr,代码如下: 代码如下: <script> // html5中默认的script是javasc ...

随机推荐

  1. Java面试——HashCode的作用原理和实例解析

    ,也就是说,我们先通过 HashCode来判断两个类是否存放某个桶里,但这个桶里可能有很多类,那么我们就需要再通过 equals 在这个桶里找到我们要的类. 请看下面这个例子 : public cla ...

  2. jmx_exportter+prometheus+grafana监控hadoop

    0.介绍(摘录自https://www.hi-linux.com/posts/25047.html) 什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和 ...

  3. Hive 执行查询语句报错,由于内存空间不足导致

    org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Can ...

  4. 如何用Jquery做图片展示效果

    一. 前言 到底用JQuery做出怎样的展示效果? 让我们先来看一下!网页加载时,如图所示: 二.本人思路 这个效果初学者看起来好像有点复杂,其实不太难,关键是理清思路,从后端的数据库中找出我们要展示 ...

  5. Codeforces Round #417 (Div. 2) 花式被虐

    A. Sagheer and Crossroads time limit per test 1 second memory limit per test 256 megabytes input sta ...

  6. [Kubernetes]容器健康检查和恢复机制

    在Kubernetes中,可以为Pod里的容器定义一个健康检查探针(Probe),这样Kubernetes会根据这个Probe的返回值决定这个容器的状态,而不是直接以容器是否允许(来自Docker返回 ...

  7. 九度oj 题目1385:重建二叉树

    题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7 ...

  8. iOS学习笔记18-CoreData

    一.CoreData介绍 CoreData是iOS5之后新出来的的一个框架, 是对SQLite进行一层封装升级后的一种数据持久化方式.它提供了对象<-->关系映射的功能,即能够将OC对象转 ...

  9. SPOJ LCS2 Longest Common Substring II ——后缀自动机

    后缀自动机裸题 #include <cstdio> #include <cstring> #include <iostream> #include <algo ...

  10. codeblocks 中文编码问题

    参考文章: code::blocks 初使用遇到的问题记录 codeblocks 中文编码问题 string var="汉"; cout<<var<<end ...