例如我的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
";
}"
在下一行中使用终止反引号。 我该怎么办。
答案 0 :(得分:2)
让我们从所需的输出向后移动到生成输出。您希望camelCase
显示包含console.log
的值:
\n
这意味着JavaScript代码中的字符串文字必须类似于
"foo\nbar"
var text = '"foo\\nfoo"';
已经为我们处理了引号,所以我们需要做的就是生成一个字符串包含json_encode
的PHP字符串。
根据您生成字符串的方式,有几种方法:
\\n
或者,您可以使用addcslashes
来转义字符串中的任何现有// single quotes
$code = 'foo\\\nbar';
// double quotes
$code = "foo\\\\nbar";
// heredoc (same as double quotes)
$code = <<<CODE
foo\\\\nbar
CODE;
:
\
答案 1 :(得分:1)
当你将字符串分配给'code'变量时,要么转义反斜杠,如下所示:
cout<<"Hello world \\n";
...或者在打印字符串之前替换换行符:
console.log(text.replace(/\n/,"\\n"));
答案 2 :(得分:1)
由于包装代码似乎是C ++,您可以用C ++常量\n
替换endl
。
结果将是
$code="#include<iostream> using namespace std;
void main() {
cout<<\"Hello world \"<<endl;
}"
答案 3 :(得分:0)
这可以使用反斜杠字符
来完成{# render opening form tag #}
{{ form_start(form) }}
{# render field with label #}
{{ form_row(form.name) }}
{# render only field #}
{{ form_widget(form.comment) }}
{# render only label #}
{{ form_label(form.amount) }}
{# render only field #}
{{ form_widget(form.amount) }}
{# if csrf token is enabled for form render field #}
{% if form._token is defined %}
{{ form_widget(form._token) }}
{% endif %}
{# render closing form tag and do not render rest form elements #}
{{ form_end(form, {'render_rest': false}) }}