指定文本中的字符串替换为html标签/正则匹配
PHP Code复制内容到剪贴板
- function bbc2html($content) {
- $search = array (
- '/(\[b\])(.*?)(\[\/b\])/',
- '/(\[i\])(.*?)(\[\/i\])/',
- '/(\[u\])(.*?)(\[\/u\])/',
- '/(\[ul\])(.*?)(\[\/ul\])/',
- '/(\[li\])(.*?)(\[\/li\])/',
- '/(\[url=)(.*?)(\])(.*?)(\[\/url\])/',
- '/(\[url\])(.*?)(\[\/url\])/'
- );
- $replace = array (
- '<strong>$2</strong>',
- '<em>$2</em>',
- '<u>$2</u>',
- '<ul>$2</ul>',
- '<li>$2</li>',
- '<a href="$2" target="_blank">$4</a>',
- '<a href="$2" target="_blank">$2</a>'
- );
- return preg_replace($search, $replace, $content);
- }
()表示一个组 因为 我们有两个() ,后面 $1 $2 就替代了括号里面的内容
PHP Code复制内容到剪贴板
- protected function bbc2html($content) {
- // <p>[video width="640" height="368" mp4="http://cms.abc.com/wp-content/uploads/2017/03/FBT课程介绍.mp4"][/video]</p>
- $search = array (
- //.表示 任意字符(换行除外) * 量词 ,0次或多次匹配 ?放后面表示不要贪婪 遇见 ] 就停 /i 大小写不敏感
- '/\[video(.*?)\](.*?)\[\/video\]/i'
- );
- $replace = array (
- '<video $1>$2</video>'
- );
- return preg_replace($search, $replace, $content);
- //输出<p><video width="640" height="368" mp4="http://cms.comactc.dteols.com/wp-content/uploads/2017/03/FBT课程介绍.mp4"></video></p>
- }
同样的文本,需要将其中的mp4换为src:
PHP Code复制内容到剪贴板
- //<p>[video width="640" height="368" mp4="http://cms.abc.com/wp-content/uploads/2017/03/FBT课程介绍.mp4"][/video]</p>
- protected function bbc2html($content) {
- $search = array (
- '/\[video(.*?)mp4=(.*?)\](.*?)\[\/video\]/i'
- );
- $replace = array (
- '<video src=$2>$3</video>'
- );
- return preg_replace($search, $replace, $content);
- }
- 这里的$2就是第二个括号 url了,不需要加“” 本身的$2是带有引号的 ,如果宽度和高度也需要使用直接改为:vide $2 src=$2
结果:
XML/HTML Code复制内容到剪贴板
- <p><video src="http://cms.abc.com/wp-content/uploads/2017/03/FBT课程介绍.mp4"></video></p>