指定文本中的字符串替换为html标签/正则匹配
后端笔记 2017-08-22 14:41:16

 

PHP Code复制内容到剪贴板
  1. function bbc2html($content) {  
  2.   $search = array (  
  3.     '/(\[b\])(.*?)(\[\/b\])/',  
  4.     '/(\[i\])(.*?)(\[\/i\])/',  
  5.     '/(\[u\])(.*?)(\[\/u\])/',  
  6.     '/(\[ul\])(.*?)(\[\/ul\])/',  
  7.     '/(\[li\])(.*?)(\[\/li\])/',  
  8.     '/(\[url=)(.*?)(\])(.*?)(\[\/url\])/',  
  9.     '/(\[url\])(.*?)(\[\/url\])/'  
  10.   );  
  11.   
  12.   $replace = array (  
  13.     '<strong>$2</strong>',  
  14.     '<em>$2</em>',  
  15.     '<u>$2</u>',  
  16.     '<ul>$2</ul>',  
  17.     '<li>$2</li>',  
  18.     '<a href="$2" target="_blank">$4</a>',  
  19.     '<a href="$2" target="_blank">$2</a>'  
  20.   );  
  21.   
  22.   return preg_replace($search$replace$content);  
  23. }  

 

()表示一个组 因为 我们有两个() ,后面 $1 $2 就替代了括号里面的内容

PHP Code复制内容到剪贴板
  1. protected function bbc2html($content) {  
  2.     // <p>[video width="640" height="368" mp4="http://cms.abc.com/wp-content/uploads/2017/03/FBT课程介绍.mp4"][/video]</p>  
  3.   
  4.     $search = array (  
  5.         //.表示 任意字符(换行除外) * 量词 ,0次或多次匹配 ?放后面表示不要贪婪 遇见 ] 就停  /i 大小写不敏感
  6.         '/\[video(.*?)\](.*?)\[\/video\]/i'  
  7.     );  
  8.     $replace = array (  
  9.         '<video $1>$2</video>'  
  10.     );  
  11.     return preg_replace($search$replace$content);  
  12.     //输出<p><video width="640" height="368" mp4="http://cms.comactc.dteols.com/wp-content/uploads/2017/03/FBT课程介绍.mp4"></video></p>  
  13. }  

 

同样的文本,需要将其中的mp4换为src:

 

PHP Code复制内容到剪贴板
  1. //<p>[video width="640" height="368" mp4="http://cms.abc.com/wp-content/uploads/2017/03/FBT课程介绍.mp4"][/video]</p>  
  2.   
  3.     protected function bbc2html($content) {  
  4.         $search = array (  
  5.             '/\[video(.*?)mp4=(.*?)\](.*?)\[\/video\]/i'  
  6.         );  
  7.         $replace = array (  
  8.             '<video src=$2>$3</video>'  
  9.         );  
  10.         return preg_replace($search$replace$content);  
  11.     }  
  12.   
  13. 这里的$2就是第二个括号 url了,不需要加“” 本身的$2是带有引号的  ,如果宽度和高度也需要使用直接改为:vide $2 src=$2

 结果:

XML/HTML Code复制内容到剪贴板
  1. <p><video src="http://cms.abc.com/wp-content/uploads/2017/03/FBT课程介绍.mp4"></video></p>  

 

 

本文来自于:http://www.yoyo88.cn/note/backend/134.html

Powered by yoyo苏ICP备15045725号