Php str_替换为不替换的内容
你好,斯塔克尔斯, 我只是有一个关于Php str_替换为不替换的内容,php,str-replace,Php,Str Replace,你好,斯塔克尔斯, 我只是有一个关于str\u replace()函数的小PHP问题。当我替换某物时,它只会替换一切;没关系。但我想知道的是: str_replace("*", "<strong>", $message); stru替换(“*”、“”、$message); 是否可以使用str_replace替换代码,如*此内容为粗体*,仅包含内容,但仍将星号替换为和 例如: 原件:**应为粗体** 更换后:应为粗体 对于将此标记为重复的人:这不是关闭HTML标记,而是替换 我希望
str\u replace()
函数的小PHP问题。当我替换某物时,它只会替换一切;没关系。但我想知道的是:
str_replace("*", "<strong>", $message);
stru替换(“*”、“”、$message);
是否可以使用str_replace替换代码,如*此内容为粗体*,仅包含内容,但仍将星号替换为和
例如:
原件:**应为粗体**
更换后:应为粗体
对于将此标记为重复的人:这不是关闭HTML标记,而是替换
我希望我没有那么不清楚。谢谢。改用正则表达式;它更方便:
$message = "**This Should be Bold**";
$message = preg_replace('#\**([^\*]+)\**#m', '<strong>$1</strong>', $message);
echo $message;
你也可以这样做
看看不使用str_replace,您可以使用已有的库来完成,只需查找类似php标记的内容即可。是否要编写标记解析器?如果是这样,我建议使用现有库而不是编写自己的库(除非您想练习如何编写和优化解析器)@jeroen这是最明智的建议,我支持that@GoudaElalfy为什么将[^\*]+
更改为[^\**]+
?以替换2*stars@GoudaElalfy但是在[]
内部?你确定吗?如果你想支持**这个粗体有一个*的内部**
,也许你可以尝试一个接一个地进行替换。@Phil_1984_编辑,谢谢。但是,与[]
中的内容不同,**此**和**此**都是粗体的
。和
也将变为粗体,
'#\*{1,2}([^\*]+)\*{1,2}#m'
<?php
$string = '**This Should be Bold**';
$string = preg_replace("/\*\*(.+?)\*\*/", "<strong>$1</strong>", $string);
echo $string;
?>