php正則網址
① php如何使用正則表達式匹配url圖片啊
可以這樣:
$image="http://xxxxxxxxx.jpg"
preg_match("/(http://)?w+.jpg/",$image,$matches);//http://可要可不要
echo$matches[0];//$matches[0]即為匹配的圖片路徑
以上只是匹配jpg類型的圖片
如果要匹配其他類型可以這樣使用
preg_match("/(http://)?w+.(jpg|jpeg|gif|png)/",$image,$matches);
echo$matches[0];
② php正則表達式 判斷是否為網址格式
正則表達式
$text="www..com";
//規則較復雜,前綴不一定是www才是網址。
寫一個可能的
$preg='/^([a-z0-9_]+\.)*([a-z0-9_]+\.){2}/';
③ 網址中帶有中文字元的php正則表達式
在中文字元出現的地方用[^`]+表示,你也可以用其它字元代替「`」,只要中文字元內處不可能出現的字元就行。
意思是:不是「`」字元,除了「`」的一切字元,包括中文,重復一次或多次。
為什麼要這樣表示中文字元的集合呢?
可能是因為在正則表達式中沒有表示中文字元的字元類或集合或范圍。甚至[[:print:]]+都不行!
測試如下:
<?php
$str='ffdjsfjshgfhfg<12><模式>d<括弧內的部分>f符類中fs<字元類中可tryrt用的元字元為>:sjssdfsfs,sfsfjksjk,<iogfds12346789>括弧內的部分';
$b='[<][^<]+[>]';//有可能出現中文字元的地方用[^<]+表示
//$b='[<][[:print:]]+[>]';
while(eregi($b,$str,$array))
{
$str_h=str_replace("<","<",$array[0]);
$str_h=str_replace(">",">",$str_h);
echo $str_h."</br>";
$str=str_replace($array[0],'',$str);
}//From J.L
?>
④ php 正則表達式 url匹配
1,preg_grep(pattern,array);它的返回值是一個新數組,新數組的元素是成功匹配的元素。
⑤ PHP 正則表達式如何替換URL參數
用正則是比較笨的辦法,但也給你提供一下了:
function getpage(){
//你可以把獲取當前page的代碼放在函數里
return 123;
}
$str = 'index.php?main_page=index&cPath=55&pagesize=48';
$ptn = '/&pagesize=(\d+)/';
$pagenum = getpage();
$rep = '&pagesize='.$pagenum;
echo $str; // 輸出:index.php?main_page=index&cPath=55&pagesize=48
preg_replace($ptn,$rep,$str);
echo $str; // 輸出:index.php?main_page=index&cPath=55&pagesize=123
另外多說一下,這種情況可以使用
http_build_query()
這個函數。
具體使用方法:
$u['main_page']=$_GET['main_page'];
$u['cPath']=$_GET['cPath'];
$u['pagesize']=getpage();
$url = 'index.php?'.http_build_query($u);
echo $url;
這個函數很好用,比你自己去匹配好。
⑥ PHP正則表達式如何匹配出域名
看看我下面的例子代碼:
<?php
$s='http://www.abc.com
http://www.def.com/
https://www.ghl.com/';
if (preg_match_all('#https?://(.*?)($|/)#m', $s, $r)) print_r($r[1]);
?>
執行的結果是:
E:\ygb>php a.php
Array
(
[0] => www.abc.com
[1] => www.def.com
[2] => www.ghl.com
)
⑦ php正則表達式 正則匹配網址是否帶http:// https://
$str = "https://xxxxxxxxx";
if(preg_match("/^(http:\/\/|https:\/\/).*$/",$str)){
echo "yes";
}
親測是可以的,你可以自己拿去試一試