将两种类型的引号作为字符串的文本块
Posted
技术标签:
【中文标题】将两种类型的引号作为字符串的文本块【英文标题】:Block of text with both types of quotes as a string 【发布时间】:2012-09-03 22:42:03 【问题描述】:我正在使用基于一些自定义模板系统的网站。假设在模板中我可以使用标签 [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]';
块中的引号会妨碍,过早地结束字符串。有什么明显的方法来处理这个问题吗?
【问题讨论】:
addslashes()
没有帮助?
见***.com/questions/5611468/…
【参考方案1】:
不知道为什么我之前没有想到这个,但是我可以简单地使用heredoc语法。
$string = <<<EOT
[custom_text]
EOT;
将解决此案。
【讨论】:
【参考方案2】:试试这个
<?php
$string = "This string has 'single quotes'";
echo addcslashes($string, '"\\');
?>
输出如下所示
This string has 'single quotes'
这个链接的答案
Click Here
【讨论】:
这会起作用,但是我需要放入字符串中的文本块中已经包含两种类型的引号,并且我无法在输出之前以任何方式对其进行预处理它。如果我使用单引号来定义字符串,它最终会是这样的: $string = 'Lorem ipsum dolor sat amet, "consectetur adipisicing elit"sed doeiusmod tempor incididunt ut's labore et dolore magna's aliqua.';如您所见,文本块中的撇号有效地关闭了字符串定义的单引号。 我能知道你从哪里得到的字符串以上是关于将两种类型的引号作为字符串的文本块的主要内容,如果未能解决你的问题,请参考以下文章