PHP:如何分配带有单引号和双引号的大字符串
我需要在数组中分配大字符串。这些字符串包含单引号和双引号以及反斜杠,不能首先转义 我的代码如下所示:PHP:如何分配带有单引号和双引号的大字符串,php,string,Php,String,我需要在数组中分配大字符串。这些字符串包含单引号和双引号以及反斜杠,不能首先转义 我的代码如下所示: $myArray = [ 'x' => 'this_is_my_string', ]; 现在,我不再使用“这是我的字符串”而是使用大字符串作为: \relative c' { \key ees \major bes'2 \mf c bes4. (as8) g4 (as) \breathe \bar "|." 如何编写代码来直接分配像这样的大字符串 我
$myArray = [
'x' => 'this_is_my_string',
];
现在,我不再使用“这是我的字符串”
而是使用大字符串作为:
\relative c' {
\key ees \major
bes'2 \mf c bes4. (as8) g4 (as) \breathe
\bar "|."
如何编写代码来直接分配像这样的大字符串
我已尝试使用和/和,但它们要求至少转义'
或“
中的一个
顺便说一句:大字符串是您要查找的片段
\relative c'{
\主修科目
bes'2\mf c bes4.(as8)g4(as)\n呼吸
\条“|”
ob\u start()
\relative c'{
\主修科目
bes'2\mf c bes4.(as8)g4(as)\n呼吸
\条“|”
ob\u start()
初始化输出缓冲,将标准输出重定向到缓冲区。ob\u end\u clean()
将结束输出缓冲,并将缓冲区返回到该点以供使用。只需使用nowdoc即可。
nowdoc的指定方式类似于herdeoc,但不进行解析
该构造非常适合嵌入PHP代码或
无需转义的其他大文本块
只需使用nowdoc即可。
nowdoc的指定方式类似于herdeoc,但不进行解析
该构造非常适合嵌入PHP代码或
无需转义的其他大文本块
herdeoc不需要转义引号您正在键入它,或者它被分配给了一个变量?@abracadver herdeoc将在开始时将\r
解释为换行符您应该能够使用反斜杠来转义引号。只需将已经存在的引号翻一番就可以转义已经存在的反斜杠。在我看来,您唯一的p问题是将传入的字符串转换为适当引用的代码段。为此编写一个小程序应该不难。@WeSee不,说真的,这就是nowdoc存在的真正原因-。您说您已经尝试过了,但老实说,在数组分配和所有方面。这不需要输出缓冲、数据库和工作在您的编辑器中,或在任何其他复杂的地方。HEREDOC不需要转义引号您正在键入它,或者它被分配给一个变量?@Abracadver HEREDOC将在开始时将\r
解释为换行符您应该能够使用反斜杠转义引号。只需将已经存在的引号加倍即可转义已经存在的引号ng反斜杠。在我看来,您唯一的问题是将传入字符串转换为适当引用的代码段。为此编写一个小程序应该不难。@WeSee不,说真的,这就是nowdoc存在的原因-。您说您已经尝试过了,但老实说,在数组分配和所有方面。这并不难我不需要输出缓冲、数据库、编辑器中的工作或任何其他复杂的操作。这可以用于变量分配吗?我不需要输出任何东西,只需要分配一个变量。这正是我的代码片段所做的。调用ob\u start()后
在调用其中一个结束函数之前,不会向浏览器发送任何内容,而是将其发送到缓冲区。ob\u get\u clean()
结束输出缓冲并返回缓冲区以供使用。我的问题是:如何将这样的字符串分配给变量?不是:如何将任何内容输出到浏览器或其他地方这正是我的代码所做的。请参阅我的代码段:$string=ob_get_clean()
-这是指分配自ob_start()以来发送到浏览器的所有内容
被调用为$string
的方式与数组的任何其他赋值方式完全相同。我已更新了代码段以与您问题中的代码相关联。这可以用于变量赋值吗?我不需要输出任何内容,只需分配一个变量。这正是我的代码段所做的。调用ob_start()后
在调用其中一个结束函数之前,不会向浏览器发送任何内容,而是将其发送到缓冲区。ob\u get\u clean()
结束输出缓冲并返回缓冲区以供使用。我的问题是:如何将这样的字符串分配给变量?不是:如何将任何内容输出到浏览器或其他地方这正是我的代码所做的。请参阅我的代码段:$string=ob_get_clean()
-这是指分配自ob_start()以来发送到浏览器的所有内容
被调用为$string
的方式与数组的任何其他赋值方式完全相同。我已更新了代码段以与您问题中的代码相关联。这是正确答案。任何向下投票的人都需要解释为什么他们认为它不是。请参阅@AbraCadaver对我的问题的评论:herdoc将在开始时解释\r作为一个换行符。所以这个解决方案不完全有效。@WeSee-这个答案没有提到herdeoc,它是关于nowdoc的。nowdoc是为这种情况而设计的。你说你在最初的问题中尝试过它,但从来没有说过确切的方法。它可以工作,因为有几个人(包括我)告诉过你。@iainn:你是对的。现在DOC也可以工作了。谢谢你的努力。这是正确的答案。任何投反对票的人都需要解释为什么他们认为不是。请参阅@AbraCadaver对我的问题的评论:heredoc会在开始时将\r解释为换行符。所以这个解决方案不完全有效。@WeSee-这个答案不正确提到heredoc,它是关于nowdoc的。nowdoc是为这样的情况设计的。你说你在最初的问题中尝试过它,但从来没有说过确切的方法。它是如何工作的,正如一些人(包括我)告诉你的那样。@iainn:你是对的。nowdoc
<?php
ob_start();
?>\relative c' {
\key ees \major
bes'2 \mf c bes4. (as8) g4 (as) \breathe
\bar "|."<?php
$myArray = [
'x' => ob_get_clean()
];
?>
<?php
$myArray = [
'x' => <<<'STR'
\relative c' {
\key ees \major
bes'2 \mf c bes4. (as8) g4 (as) \breathe
\bar "|."
STR
];
echo $myArray['x'];