将两种类型的引号作为字符串的文本块

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 doeiu​​smod tempor incididunt ut's labore et dolore magna's aliqua.';如您所见,文本块中的撇号有效地关闭了字符串定义的单引号。 我能知道你从哪里得到的字符串

以上是关于将两种类型的引号作为字符串的文本块的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式应该只匹配两种类型的带引号的字符串之一

Python数据类型之“文本序列(Text Sequence)”

Python字符串

python之字符串类型及其操作

python中的长文本作为字符串

字符串类型