正则的各种读取方式
读取数字
$pattern = "/\d+/"; $strs="23345swwyuiopbfASWEDD4667"; preg_match_all($pattern,$strs,$arr); $arr=implode($arr[0]); print_r($arr);
读取图片
$pic="fsafasdf<img height='200' src='images/gg.gif' width='20' />werwer <IMG height='200' src='images/cc.gif' width='20' />"; //$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]>/i"; $pattern='/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/i'; preg_match_all($pattern,$pic,$imgList); print_r($imgList);
读取字符和数字
$pattern='/\w+/'; $strs="23345sw你好呀wyuiopbfASWEDD4667"; preg_match_all($pattern,$strs,$arr); $arr=implode($arr[0]); print_r($arr);
清除html
$strs="<a href='sd'>hello work</a> welcome <table><tr><td>good</td></tr></table>";
$html = preg_replace('/<[a-zA-Z]+[^>].*?>/i','',$strs);
$html = preg_replace("/<[\/][a-zA-Z ]+>/",'\1',$html);
用函数取图片
$str = '</head><body><IMG src="/afasd/sadfas11d/ok.jpg" alt="" /><IMG src="/afasd/sadfas22d/ok.jpg" alt="" /><img src="/afasd/sadf33asd/ok.jpg" alt=""></body></html>';
echo getImgUrl($str);
/**
* 取出图片的URL
* getImgUrl
* $str 要查询的字符串
* $num 要取第几张图片的 URL
* @return String
* */
function getImgUrl($str,$num = 1)
{
$reg = '/<img(.*?)src=(.*?)\/?>/i';
preg_match_all($reg,$str,$imgList);
if(!empty($imgList))
{
if(isset($imgList[0][$num-1]))
{
$img = $imgList[0][$num-1];
preg_match('/src=(.*?)\.\w{3,4}/i',$img,$url);
$rep = array('src="',"src='",'src=');
if(!empty($url))
return str_replace($rep,'',$url[0]);
else
return '';
}
else
return '没有那么多图片';
}
else
return '内容中没有图片';
}
获取图片
$text = 'adfsp<img src="abc.jpg">qwqwe<img src="img/ab333.jpg" height="40">werewr <img width="100" src="abc333.jpg">wer';
$matches1 = getImgUrl ( $text, 2 );
print_r ( $matches1 );
/**
* 获取图片地址
*/
function getImgUrl($str, $num = 1) {
$pattern = "/<img.*?src=[\'|\"](.*?)[\'|\"].*?\/?>/i";
preg_match_all ( $pattern, $str, $matches );
if (! empty ( $matches [1] [$num] )) {
return $matches [1] [$num];
} else {
return false;
}
}
浙公网安备 33010602011771号