文本块包含双引号和单引号的字符串

5

我正在处理一个基于自定义模板系统的网站。假设在模板中,我可以使用标签[custom_text],它会输出整个HTML块,就像通过CMS的富文本编辑器定义的那样:

<b>Lorem ipsum dolor</b> sit amet, "consectetur adipisicing elit"<br /><br />
<b>sed doeiusmod</b> tempor incididunt ut's labore et dolore magna's aliqua.

请注意,这段文字中包含两种引号。由于带有模板系统的CMS是编码的,因此我无法预处理除将其实际输出到页面以外的任何内容。
现在我需要操作该代码块,例如从代码中删除所有换行符。我可以在页面上使用PHP,但我不能定义一个包含该代码块的字符串。如果我这样做:
$string = "[custom_text]";
$string = '[custom_text]';

代码块中的引号会干扰字符串,使其提前结束。有没有明显的方法来处理这个问题?


1
addslashes() 没有帮助吗? - hjpotter92
请参见https://dev59.com/fG035IYBdhLWcg3wH8Ql。 - Todd Moses
2个回答

3

之前不知道为什么没想到,但是可以使用heredoc语法。

$string = <<<EOT
[custom_text]
EOT;

将解决这个问题。


0

试试这个

<?php
$string = "This string has 'single quotes'";
echo addcslashes($string, '"\\');
?>

输出结果将如下所示

This string has 'single quotes'

这个链接的答案

点击这里


这个方法本来是可行的,但是我需要放入字符串的文本块中已经包含了两种引号,而且我无法在输出之前对其进行任何预处理。如果我使用单引号来定义字符串,它会变成这样:$string = 'Lorem ipsum dolor sit amet, "consectetur adipisicing elit"

sed doeiusmod tempor incididunt ut's labore et dolore magna's aliqua.';
正如你所看到的,文本块中的撇号实际上关闭了字符串定义的单引号。
- prezes
我可以知道你从哪里获取了这个字符串吗? - Varun Sridharan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接