preg_match_all函數是用來獲取指定數據內容的,它經常用於執行正則表達多,下面我來給大家介紹兩個關於preg_match_all函數實現教程,一個是獲取url參數,一個是獲取內容中圖片方法。
preg_match_all — 執行一個全局正則表達式匹配
int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
例
代碼如下 復制代碼preg_match_all("|<[^>]+>(.*)]+>|U",
"example:
如何獲取偽靜態url中的參數變量,已經對應的值。
比如說。你現在url的是這樣的。/js/d1b3cid419299191rs好腳本
你的.htaccess文件會這樣寫rewirte規則 RewriteRule ^js/(.*)$ /index.php?m=Sell&a=index&g=$1 [QSA,PT,L]
這樣你就可以把g接收過來。
代碼如下 復制代碼$get = 'd1b3cid419299191rs好腳本';
$rs_pos = strpos($get,'rs');
if($rs_pos !== false)
{
$rs = substr($get,$rs_pos);
$rs = str_replace('rs','',$rs);
$rs = strpos($rs,'/')!==false ? substr($rs,0,strpos($rs,'/')) : $rs;
$get = substr($get,0,$rs_pos);
}
echo 'keywords='.$rs;
echo '
';
preg_match_all('/([a-z]*)([0-9]+)/',$get,$m);
if($m)
{
$k = $v = '';
$count = count($m[1]);
for($i = 0; $i <= $count; $i++)
{
${$m[1][$i]} = $m[2][$i];
if(isset(${$m[1][$i]}))
{
echo $m[1][$i].'='.${$m[1][$i]};
echo '
';
}
}
}
結果:keywords=好腳本,d=1,b=3,cid=419299191
匹配文章中的圖片
代碼如下 復制代碼
$con = file_get_contents("http://www.bkjia.com/");
$pattern="/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg|.png]))['|"].*?[/]?>/";
preg_match_all($pattern,$con,$match);
print_r($match);
?>
輸出代碼
Array
(
[0] => Array
(
[0] =>
[1] =>
[2] =>
)
[1] => Array
(
[0] => https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011717401065.png
[1] => https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011717401083.jpg
[2] => https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017011717401020.jpg
)
)