Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:如何分配带有单引号和双引号的大字符串_Php_String - Fatal编程技术网

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'];