我需要用微笑替换图像标签{smile:smilename}
<?php
$pattern = '<img src="/img/smile/(.*?).gif">';
$replacement = '{smile:$1}';
$subject = '<div contenteditable="true" id="message_text">text<img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"><img src="/img/smile/smile3.gif"></div>';
echo preg_replace($pattern, $replacement, $subject, -1 );
?>
Run Code Online (Sandbox Code Playgroud)
我明白了:
<div contenteditable="true" id="message_text">text<{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}><{smile:smile3}></div>
Run Code Online (Sandbox Code Playgroud)
<{smile:smile3}>但是我需要
{smile:smile3}你<和>被视为分隔符,而不是表达的一部分.使用:
$pattern = '#<img src="/img/smile/(.*?).gif">#';
Run Code Online (Sandbox Code Playgroud)
请参阅php.net regexp delimiters文档(第三个代码示例和顶级用户注释)
您需要在模式中使用分隔符并在内部转义此字符.
$pattern = '/<img src="\/img\/smile\/(.*?).gif">/';
Run Code Online (Sandbox Code Playgroud)
要么
$pattern = '@<img src="/img/smile/(.*?).gif">@';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |