Heim  >  Artikel  >  Backend-Entwicklung  >  用正则表达式替换内容 php,正则表达式替换php_PHP教程

用正则表达式替换内容 php,正则表达式替换php_PHP教程

WBOY
WBOYOriginal
2016-07-12 09:08:28814Durchsuche

用正则表达式替换内容 php,正则表达式替换php

以前做一个项目,就是有一个问答的页面,比如说在回答或者提问的内容中插入表情。写到内容里的是表情图片的名字(而且是不带后缀的,比如:f_002.png)表情包放在项目里,我需要在取除内容的时候将里面的表情名字替换成图片。

存到数据库中的内容是这样的:   不知道[f_013]    (最后面的这个[f_013]就是表情图在数据库中存放的形式)

我需要做的就是从数据库中取出内容,并且把内容中的像这样的字符 [f_013] 处理成图片地址,很显然这里需要用到正则表达式。

1.首先我得先找到这个字符串

$rule = <span>"</span><span>/(?:\[)(f_.[0-9]{1,3})(?:\])/i</span><span>"</span>;

这个正则匹配可以帮我找到表情的字符串

2.找到后就是把这个字符串换成表情图片存放的地址,这里用到了一个函数就是正则表达式的替换。

就是这个函数:preg_match_all

echo preg_replace(<span>"</span><span>/(?:\[)(f_.[0-9]{1,3})(?:\])/i</span><span>"</span>,<span>"</span><span><img  src='__PUBLIC__/face/\${1}.png' alt="用正则表达式替换内容 php,正则表达式替换php_PHP教程" ></span><span>"</span>,$line[<span>'</span><span>content</span><span>'</span>]);
$line['content']   这个是我从数据库中取出的内容,
"<img  src='__PUBLIC__/face/\${1}.png' alt="用正则表达式替换内容 php,正则表达式替换php_PHP教程" >"  这个是我将要替换的图片地址,比如我的图片地址是这样的<img  src="__PUBLIC__/face/f_013.png" alt="用正则表达式替换内容 php,正则表达式替换php_PHP教程" ><br />这里面有一个非常重要的知识点: "\${1}"   它就是那个存放在数据库里面表情的字符串。<br />\${1} = f_013 <br /><br />我这里有我替换的一个完整代码:
<em id="__mceDel"><span><?php<br />$result</span> = <span>array</span><span>();
     </span><span>$n</span> = <span>preg_match_all</span>("/(?:\[)(f_.[0-9]{1,3})(?:\])/i",<span>$line</span>['content'], <span>$result</span><span>); /*返回查找到符合条件的字符串的个数*/
     </span><span>if</span>(<span>$n</span> == 0 || <span>$n</span> == <span>false</span><span>)   /*如果是0或者false就说明没有表情*/<br />   {
        </span><span>echo</span> <span>$line</span>['content'<span>];
     }</span><span>else<br /></span><span>   {
       </span><span>echo</span> <span>preg_replace</span>("/(?:\[)(f_.[0-9]{1,3})(?:\])/i","<img  src='__PUBLIC__/face/\${1}.png' alt="用正则表达式替换内容 php,正则表达式替换php_PHP教程" >",<span>$line</span>['content'<span>]);
     }
     </span>?></em>

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1054355.htmlTechArticle用正则表达式替换内容 php,正则表达式替换php 以前做一个项目,就是有一个问答的页面,比如说在回答或者提问的内容中插入表情。写到...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn