導航:首頁 > 編程語言 > php正則提取img

php正則提取img

發布時間:2022-06-22 23:14:10

php簡單正則匹配Img標簽src內容採集

//抓取網頁
echo" 抓取網頁======================================= ";
functiongetHTTPS($url){
$ch=curl_init();
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_HEADER,false);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_REFERER,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
$result=curl_exec($ch);
curl_close($ch);
return$result;
}
$result=getHTTPS("");

$array=array(
'img',
'script',
'link'
);

$num=count($array);
for($i=0;$i<$num;++$i){
echo$array[$i]."-------------------------------- ";
if(preg_match_all("/<".$array[$i]."[^>]*>/i",$result,$m)){
for($j=0;$j<count($m[0]);$j++){
echo$m[0][$j]." ";
}
}
}

② PHP正則表達式提取IMG標簽的問題

$preg = "/<img src=\"(.+?)\".*?>/";

③ 請問怎樣用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正則表達式[img=**]

按照你的要求編寫的php程序如下(見圖,正則匹配結果取第一和第二捕獲組的數據)

⑤ php 正則表達式取[img][/img]標簽裡面的東西

<?php

$string = '[img]http://www..com/img/bdlogo.gif[/img]網路網路[img]http://127.0.0.1/jx09/p_w_upload/Mon_1308/196_403966_392c1785279171a.png[/img]<p>sssss</p>';
preg_match_all("|[img](.*)[/img]|iUs",$string,$arr);
foreach($arr[0] as $v){
echo $v.'<br>';
}


⑥ 求教php正則高手。php正則獲取html內容中的所有img路徑及名稱,替換img的路徑

正則表達式:(?<=<img src=")(/.+/)(.+?.(gif|jpg|png))(?=">)

分別取第0和第2捕獲組的數據,就是你要的獲取/abc/efg/qwe/1.gif和獲取1.gif的數據

替換你可以用上面的正則表達式:(?<=<img src=")(/.+/)(.+?.(gif|jpg|png))(?=">)

替換成:style/images/$2

我給你一個用java實現的上述正則表達式的例子.

importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassCC{
publicstaticvoidmain(String[]args){
Strings="<imgsrc="/abc/efg/qwe/1.gif">";
Stringregex="(?<=<imgsrc=")(/.+/)(.+?\.(gif|jpg|png))(?=">)";
Patternp=Pattern.compile(regex);
Matcherm=p.matcher(s);
while(m.find()){
System.out.println(m.group());
System.out.println(m.group(2));
}
System.out.println(s.replaceAll("(?<=<imgsrc=")(/.+/)(.+?\.(gif|jpg|png))(?=">)","style/images/$2"));
}
}

運行結果:

/abc/efg/qwe/1.gif
1.gif
<img src="style/images/1.gif">

⑦ php 正則判斷img標簽

$content='<imgsrc="1.jpg"alt="">我是文字<imgsrc="2.jpg"alt="">';
if(preg_match_all("/<img[^>]*src[="'s]+([^"']*)["']?[^>]*>((?:(?!<img)[sS])*)/i",$content,$m)){
for($j=1;$j<count($m);$j++){
for($i=0;$i<count($m[$j]);$i++){
echo$m[$j][$i]." ";
}
}
}

閱讀全文

與php正則提取img相關的資料

熱點內容
代碼加密常用方法 瀏覽:950
安卓手機如何解除已禁用 瀏覽:396
演算法的隨機性 瀏覽:485
高中解壓體育游戲 瀏覽:532
androidstudior丟失 瀏覽:345
命令行筆記 瀏覽:737
360目標文件夾訪問拒絕 瀏覽:518
3b編程加工指令 瀏覽:789
c8051f系列單片機選型手冊 瀏覽:772
南昌php程序員 瀏覽:511
bcs命令 瀏覽:446
如何在伺服器指向域名 瀏覽:417
車床編程可以做刀嗎 瀏覽:519
ln命令源碼 瀏覽:791
用粘液做解壓手套 瀏覽:331
icloud收信伺服器地址 瀏覽:500
編程思考者 瀏覽:453
壓縮機型號用什麼氟利昂 瀏覽:553
農機空氣壓縮機 瀏覽:666
程序員下載歌曲 瀏覽:897