php正則匹配img
A. php 正則怎樣匹配img標簽的src內容
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><?php
//代碼直接運行即可
$str='eeeeeee<imgsrc="aaaa.jpg"/>asad';
preg_match('/<imgsrc="(.*?)"//',$str,$result);
print_r($result['1']);
die();
?>
B. php中正則匹配img標簽,並且替換了。
你看看這個吧:
<?php
function change_str($string)
{
preg_match_all('|(.*)src="(.*)"(.*)|isU',$string,$main);
$newstring = "";
foreach($main[1] as $key => $value )
{
$newstring .= $value;
if (strpos($main[2][$key],".jpg") or strpos($main[2][$key],".gif") )
{
if ( strpos($main[2][$key],"http://") === false )
$main[2][$key] = "http://".$main[2][$key];
}
$newstring .= 'src="'.$main[2][$key].'"';
$newstring .= $main[3][$key];
}
return $newstring;
}
$mystr = "";//你的字元串;
echo change_str($mystr);
?>
C. PHP正則匹配img標簽的正則 並獲得alt屬性的值
preg_match_all("/<img.*alt\=[\"|\'](.*)[\"|\'].*>/i","<img src=\"地址\" alt=\"alt\">",$match);
print_r($match);
D. php正則匹配多張img
不知道這個是否符號你的要求:
<?php
$string = '<img src="abc"/><img src="efg"/><link src="a.css"/>';
echo preg_replace('/<img(.*?)src=/i','<img$1Layzyload=',$string);
//End_php
//輸出
<img Layzyload="abc"/><img Layzyload="efg"/><link src="a.css"/>
E. 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]." ";
}
}
}
F. 請問怎樣用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;
}
G. PHP正則匹配和替換IMG標簽問題
不知道這個是否符號你的要求:
<?php
$string = '<img src="abc"/><img src="efg"/><link src="a.css"/>';
echo preg_replace('/<img(.*?)src=/i','<img$1Layzyload=',$string);
//End_php
//輸出
<img Layzyload="abc"/><img Layzyload="efg"/><link src="a.css"/>
H. php正則表達式[img=**]
按照你的要求編寫的php程序如下(見圖,正則匹配結果取第一和第二捕獲組的數據)
I. php正則匹配img標簽,並刪除
$str = 'alksdfjlaksj<img src="21412">';
$str = strip_tags($str,'img');
echo $str;
J. 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]." ";
}
}
}