微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 使用str_replace或其他函数替换标记

有没有办法在只有开放和关闭的情况下替换标签,例如:

//search to replace
$text = '[b]this will be bold[/b] but this will be not.';
$search = array('[b]long string[/b]');
//replace with
$replace = array('<b>long string</b>');
echo str_replace($search, $replace, $text);

想要的结果:

this will be bold but this will be not.

我不确定如何正确设置任何帮助都会感激不尽.

解决方法:

听起来你想要实现一个BBCodes系统,你需要使用正则表达式来做.

http://thesinkfiles.hubpages.com/hub/Regex-for-BBCode-in-PHP有一篇非常好的文章解释了如何解释各种正则表达式部分的含义,以便您可以在以后编写自己的附加内容.

上面转换上面示例的代码如下:

$text = '[b]this will be bold[/b] but this will be not.';
$ret = $text; // So we don't overwrite the original variable.
$ret = preg_replace('#\[b\](.+)\[\/b\]#iUs', '<b>$1</b>', $ret);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐