Inhaltsverzeichnis
用正则表达式替换内容 php,正则表达式替换php
Heim php教程 php手册 用正则表达式替换内容 php,正则表达式替换php

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

Jun 13, 2016 am 08:54 AM
正则表达式

用正则表达式替换内容 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>;
Nach dem Login kopieren

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

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

就是这个函数:preg_match_all

echo preg_replace(<span>"</span><span>/(?:\[)(f_.[0-9]{1,3})(?:\])/i</span><span>"</span>,<span>"</span><span><img  src="/static/imghw/default1.png"  data-src="__PUBLIC__/face/f_013.png"  class="lazy" alt="用正则表达式替换内容 php,正则表达式替换php" ></span><span>"</span>,$line[<span>'</span><span>content</span><span>'</span>]);
Nach dem Login kopieren
$line['content']   这个是我从数据库中取出的内容,
Nach dem Login kopieren
"<img  src="/static/imghw/default1.png"  data-src="__PUBLIC__/face/f_013.png"  class="lazy" alt="用正则表达式替换内容 php,正则表达式替换php" >"  这个是我将要替换的图片地址,比如我的图片地址是这样的<img  src="/static/imghw/default1.png"  data-src="__PUBLIC__/face/f_013.png"  class="lazy" alt="用正则表达式替换内容 php,正则表达式替换php" ><br />这里面有一个非常重要的知识点: "\${1}"   它就是那个存放在数据库里面表情的字符串。<br />\${1} = f_013 <br /><br />我这里有我替换的一个完整代码:
Nach dem Login kopieren
<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" >",<span>$line</span>['content'<span>]);
     }
     </span>?></em>
Nach dem Login kopieren

 

Erklärung dieser Website
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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Reguläre PHP-Ausdrücke: Exakte Übereinstimmung und Ausschluss von Fuzzy-Einschlüssen Reguläre PHP-Ausdrücke: Exakte Übereinstimmung und Ausschluss von Fuzzy-Einschlüssen Feb 28, 2024 pm 01:03 PM

Reguläre PHP-Ausdrücke: Exakte Übereinstimmung und Ausschluss von Fuzzy-Einschlüssen

Validierung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats Validierung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats Mar 21, 2024 am 09:45 AM

Validierung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats

Wie validiere ich eine E-Mail-Adresse in Golang mithilfe eines regulären Ausdrucks? Wie validiere ich eine E-Mail-Adresse in Golang mithilfe eines regulären Ausdrucks? May 31, 2024 pm 01:04 PM

Wie validiere ich eine E-Mail-Adresse in Golang mithilfe eines regulären Ausdrucks?

Beherrschen Sie reguläre Ausdrücke und String-Verarbeitung in der Go-Sprache Beherrschen Sie reguläre Ausdrücke und String-Verarbeitung in der Go-Sprache Nov 30, 2023 am 09:54 AM

Beherrschen Sie reguläre Ausdrücke und String-Verarbeitung in der Go-Sprache

Wie kann ich Zeitstempel mithilfe regulärer Ausdrücke in Go abgleichen? Wie kann ich Zeitstempel mithilfe regulärer Ausdrücke in Go abgleichen? Jun 02, 2024 am 09:00 AM

Wie kann ich Zeitstempel mithilfe regulärer Ausdrücke in Go abgleichen?

Wie überprüfe ich das Passwort mithilfe eines regulären Ausdrucks in Go? Wie überprüfe ich das Passwort mithilfe eines regulären Ausdrucks in Go? Jun 02, 2024 pm 07:31 PM

Wie überprüfe ich das Passwort mithilfe eines regulären Ausdrucks in Go?

Wie erkennt man eine URL mit regulärem Ausdruck in Golang? Wie erkennt man eine URL mit regulärem Ausdruck in Golang? May 31, 2024 am 10:32 AM

Wie erkennt man eine URL mit regulärem Ausdruck in Golang?

Was sind die Platzhalter für reguläre Ausdrücke? Was sind die Platzhalter für reguläre Ausdrücke? Nov 17, 2023 pm 01:40 PM

Was sind die Platzhalter für reguläre Ausdrücke?

See all articles