程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 用正則表達式替換內容 php,正則表達式替換php

用正則表達式替換內容 php,正則表達式替換php

編輯:關於PHP編程

用正則表達式替換內容 php,正則表達式替換php


以前做一個項目,就是有一個問答的頁面,比如說在回答或者提問的內容中插入表情。寫到內容裡的是表情圖片的名字(而且是不帶後綴的,比如:f_002.png)表情包放在項目裡,我需要在取除內容的時候將裡面的表情名字替換成圖片。

存到數據庫中的內容是這樣的:   不知道[f_013]    (最後面的這個[f_013]就是表情圖在數據庫中存放的形式)

我需要做的就是從數據庫中取出內容,並且把內容中的像這樣的字符 [f_013] 處理成圖片地址,很顯然這裡需要用到正則表達式。

1.首先我得先找到這個字符串

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

這個正則匹配可以幫我找到表情的字符串

2.找到後就是把這個字符串換成表情圖片存放的地址,這裡用到了一個函數就是正則表達式的替換。

就是這個函數:preg_match_all

echo preg_replace("/(?:\[)(f_.[0-9]{1,3})(?:\])/i","<img src='__PUBLIC__/face/\${1}.png'>",$line['content']);
$line['content']   這個是我從數據庫中取出的內容,
"<img src='__PUBLIC__/face/\${1}.png'>"  這個是我將要替換的圖片地址,比如我的圖片地址是這樣的<img src="__PUBLIC__/face/f_013.png">
這裡面有一個非常重要的知識點: "\${1}" 它就是那個存放在數據庫裡面表情的字符串。
\${1} = f_013

我這裡有我替換的一個完整代碼:
<?php
$result = array(); $n = preg_match_all("/(?:\[)(f_.[0-9]{1,3})(?:\])/i",$line['content'], $result); /*返回查找到符合條件的字符串的個數*/ if($n == 0 || $n == false) /*如果是0或者false就說明沒有表情*/
   { echo $line['content']; }else
   {   echo preg_replace("/(?:\[)(f_.[0-9]{1,3})(?:\])/i","<img src='__PUBLIC__/face/\${1}.png'>",$line['content']); } ?>

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved