“ n"在PHP中,字符串变量存储在javascript变量中会导致换行
" " in php string variable when stored in javascript variable causes line break
例如我的php字符串变量包含
$code="#include<iostream> using namespace std;
void main() {
cout<<"Hello world 'n";
}"
在javascript中,当我输入
var text=<?php echo json_encode($code); ?>
console.log(text);
然后给出输出
"#include<iostream>
using namespace std;
void main(){
cout<<"Hello world
";
}"
取下一行结束的反引号。我该怎么办?
让我们从期望的输出回溯到生成输出。您希望console.log
显示包含'n
的值:
"foo'nbar"
这意味着JavaScript代码中的字符串必须看起来像
var text = '"foo''nfoo"';
json_encode
已经为我们照顾引号的东西,所以我们所需要做的就是生成一个PHP字符串,字面上包含''n
。
根据您生成字符串的方式,有几种方法:
// single quotes
$code = 'foo'''nbar';
// double quotes
$code = "foo''''nbar";
// heredoc (same as double quotes)
$code = <<<CODE
foo''''nbar
CODE;
或者您可以使用addcslashes
转义字符串中任何现有的'
:
$code = addslashes('foo'nbar', '''');
$code = addslashes("foo''nbar", "''");
或者在将字符串赋值给'code'变量时转义反斜杠,如下所示:
cout<<"Hello world ''n";
…或者在打印字符串之前替换新的行字符:
console.log(text.replace(/'n/,"''n"));
由于包装的代码似乎是c++,您可以将'n
替换为c++常量endl
。
结果是
$code="#include<iostream> using namespace std;
void main() {
cout<<'"Hello world '"<<endl;
}"
可以使用反斜杠字符
text=text.replace(/''n/g,"''n");
相关文章:
- 当我按下getroute按钮时,我希望我的javascript变量存储在数据库中
- Javascript全局变量存储在哪个对象中
- 将javascript变量存储到HTML文本框中
- 如何将angular.js模型变量存储在javascript变量中
- 如何使用 AngularJS 将变量存储在数组中
- 简单的事情,如何将变量存储到数组中
- 将变量存储到数组 JavaScript 中
- 全局变量存储在 Node.JS 中的什么位置?节点中是否有类似窗口的对象
- 将变量存储到我的服务器
- Selenium IDE - 我可以将Selenium变量存储到javascript变量中吗?
- 如何将这三个变量存储到本地存储中
- 有没有办法将会话变量存储在 AJAX 调用的 javascript 中或仅存储在方法中
- 如何将javascript变量存储到php中
- mootools将变量存储在IE中iframe的父级中
- 将包含数据的变量存储到Mysql中
- 变量存储函数作为基元类型或引用类型
- 将javascript变量存储在mysql数据库中
- 对于Loop/Each Loop变量存储和比较(jQuery或Javascript
- 如何使用AJAX将javascript变量存储到我的sql数据库中
- 将javascript变量存储在数据属性中并进行检索