【发布时间】:2011-07-28 07:44:19
【问题描述】:
我想做这样的事情:
<my_tag_name>
text..
any_text
</my_tag_name>
但是如果用户这样放置内容会出现问题:
<my_tag_name>
text..
any_text
</my_tag_name>
</my_tag_name>
所以我把
function content($string, $tagname)
{
$pattern = "/<$tagname>([\w\W]*?)<\/$tagname>/";
$preg_match($pattern, $string, $matches);
return str_replace("<'", "<", $matches[1]);
}
function replace($string)
{
return str_replace("<", "<'", $string);
}
目标是将自定义标签和任何类型的文本作为内容。这是正确的方法吗?我试过了,它有效。但话又说回来,我记得同样的原则是在 html 中,但你不能在那里说
我的内容
。
我也想要这样的:
tag: reserved_64_characters
tag2: reserved_64_characters
这些东西是如何在 XML 中实现的?是否还有一些转义/替换。 我想这样做可以插入任何内容我的意思是任何字符(也是 ..)。
开启http://www.w3schools.com/xml/xml_cdata.asp
关于 CDATA 部分的注释:
CDATA 部分不能包含字符串“]]>”
【问题讨论】:
-
有史以来最好的帖子之一:stackoverflow.com/questions/1732348/… 本质上:不要将正则表达式用于语法!
-
+1 到“不要将正则表达式用于语法”