當前位置:首頁 » 編程語言 » php正則圖片替換圖片

php正則圖片替換圖片

發布時間: 2025-07-13 06:12:43

❶ 請問怎樣用php 正則表達式取設置寬和高的[img][/img]標簽裡面的圖片地址

用php給你運行了一個

$txt='[img=442,296]圖片地址1[/img]
[img=300,188]圖片地址2[/img]
[img=120,206]圖片地址3[/img]';
$re='/[img=(d+,d+)](S+?)[/img]/';//這里修改下,加上一個?防止以單行文本導致的定界符不準問題
$arr=[];
preg_match_all($re,$txt,$arr);
var_mp($arr);

運行結果如下

phptest.php
array(3){
[0]=>
array(3){
[0]=>
string(32)"[img=442,296]圖片地址1[/img]"
[1]=>
string(32)"[img=300,188]圖片地址2[/img]"
[2]=>
string(32)"[img=120,206]圖片地址3[/img]"
}
[1]=>
array(3){
[0]=>
string(7)"442,296"
[1]=>
string(7)"300,188"
[2]=>
string(7)"120,206"
}
[2]=>
array(3){
[0]=>
string(13)"圖片地址1"
[1]=>
string(13)"圖片地址2"
[2]=>
string(13)"圖片地址3"
}
}

//增加一個矩陣轉換
$txt='[img=442,296]圖片地址1[/img][img=300,188]圖片地址2[/img][img=120,206]圖片地址3[/img][img=120,206]wwww[/img]';
$re='/[img=(d+,d+)](S+?)[/img]/';

var_mp(preg_match_all_to_array($re,$txt));

functionpreg_match_all_to_array($re,$txt)
{
$arrs=[];
preg_match_all($re,$txt,$arrs);
if($arrs===false)
return$arrs;
//移除到總匹配數據
array_shift($arrs);
$return=[];
//獲取矩陣縱長
$arrs_longitudinal=count($arrs);
for($i=0;$i<$arrs_longitudinal;$i++){
//獲取單列橫長
$arrs_transverse=count($arrs[$i]);
for($j=0;$j<$arrs_transverse;$j++){
$return[$j][$i]=$arrs[$i][$j];
unset($arrs[$i][$j]);
}
unset($arrs[$i]);
}
return$return;
}

❷ 這里的這些小符號怎麼打出來 php 怎麼去除 或者 替換掉 這些特殊字元

該圖中的符號有兩種情況,一種就是小圖片,一種就是emoji表情圖片。處理方法就是替換。示例如下:
一.替換文本中的圖片為空:

$str="<li><img src="a.gif" />母親節</li>";
$strs= preg_replace('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', "", $str);
echo $str;

二.處理文本中的emoji為空:
$str = "<li>😀 母親節 💗</li>";

$str = preg_replace_callback("/./u", function ($match) { return strlen($match[0]) >= 4 ? '' : $match[0]; }, $str);
echo $str;

❸ php 正則查找 圖片的src 並替換相應的src

/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg轉
/TestDemo/Tpl/default/File/Uploads/2010_9_6/1283591048.jpg
根據你題目裡面舉例的這種對比的需求,轉換條件認為是
「/Public/Files/全日期/數字.jpg」形式的圖片轉換成
「/File/Uploads/緊縮日期/數字.jpg」形式的圖片。如果實際你的需求有所不同,可以根據這個略微對正則做修改。代碼替換部分如下:

$str1 = "<p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg\" width=\"32\" border=\"0\" />來留言看看這的風景好嗎 <img alt=\"\" src=\"/TestDemo/Public/kindeditor/plugins/emoticons/13.gif\" border=\"0\" /></p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_12_01/88668866.jpg\" width=\"32\" border=\"0\" />";
//這里多舉一個圖片例子試試
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_)[0]?(\d{1,2}_)[0]?(\d{1,2}\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2$3$4$5",$str1);
?>
//規則有不同的話你可以這里對比修改下正則參數。good luck~

//----------------------------------------
既然需求少了那麼多,就可以
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_\d{1,2}_\d{1,2}\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2",$str1);
行了,如果對圖片的格式限制不嚴格(嚴格點的就需要在尾巴那裡羅列出來),可以再簡化成
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_\d{1,2}_\d{1,2}\/\d+[.][a-zA-Z]+\")/","$1/File/Uploads$2",$str1);

❹ PHP正則表達式如何替換像這樣的案例的

這個用正則表達式替換是比較簡單的,因為有分隔符/,所以把分隔符後面的都替換掉就行了.

<?php

$str="龍門飛甲/龍門飛甲電視劇版";

$regex="~/.*?$~";

echo preg_replace($regex,"",$str);

?>

❺ php 用正則匹配最外層div下面的所有內容。如圖所示匹配<div class="zz">下面的所有內容。謝謝了

按照你圖片里的代碼,幫你做了一個示例,如下:

PHP代碼:

$str=file_get_contents('./ceshi.html');

preg_match('/<body>s+<divclass="zz">(.*)</div>s+</body>/s',$str,$result);

echo$result[1];

運行結果:

正則中的s+是為了匹配body與div中的換行以及縮進符。如果在匹配前已經將換行以及縮進符都替換掉了可以不加s+。

如果不明,可繼續追問。

熱點內容
我與預演算法 發布:2025-07-13 11:20:28 瀏覽:426
線譜演算法 發布:2025-07-13 11:17:15 瀏覽:838
怎麼把文件上傳百度雲 發布:2025-07-13 11:09:18 瀏覽:556
光遇安卓玩家如何加蘋果玩家 發布:2025-07-13 11:08:21 瀏覽:477
安卓哪裡下載破解游戲 發布:2025-07-13 11:02:30 瀏覽:324
三菱如何查找未編譯的程序 發布:2025-07-13 11:02:29 瀏覽:389
2013全國計算機二級c語言真題 發布:2025-07-13 10:58:17 瀏覽:174
python讀取txt 發布:2025-07-13 10:56:50 瀏覽:641
c語言ftp伺服器 發布:2025-07-13 10:56:36 瀏覽:413
mdb壓縮 發布:2025-07-13 10:56:02 瀏覽:425