php正則驗證url
⑴ php-php中如何使用正則表達式匹配URL中的域名
<?php
//從URL中取得主機名
preg_match("/^(http://)?([^/]+)/i","IP/index.html",$matches);
$host=$matches[2];
//從主機名中取得後面兩段
preg_match("/[^./]+.[^./]+$/",$host,$matches);
echo"domainnameis:{$matches[0]} ";
?>
⑵ php 正則驗證是url否以http://開始 返回值是啥 我是一菜鳥 求解
<?php
$url = "http://www..com";
$pa = '/\b((?#protocol)https?|ftp):\/\/((?#domain)[-A-Z0-9.]+)((?#file)\/[-A-Z0-9+&@#\/%=~_|!:,.;]*)?((?#parameters)\?[A-Z0-9+&@#\/%=~_|!:,.;]*)?/i';
preg_match_all($pa,$url,$r);
if($r[1][0]=='http')
{
echo '當前網路訪問協議是 http';
}
?>
如果單純地只是檢測是不是以http://開頭,可以直接用strpos函數來完成,這樣速度更快。
⑶ PHP 正則驗證URL網址格式是否有效
PHP使用ereg()正則表達式函數來驗證網址URL的格式是否符合規定,若網址有效則返回true,無效則返回false。本函數在PHP中屬常用函數。本函數執行返回布爾值。
PHP檢測網址是否效的
1 function CheckUrl($C_url){
2 if (!ereg("^http://[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$", $C_url))
3 {
4 return false;
5 }
6 return true;
7 }
⑷ 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 正則表達式 url匹配
1,preg_grep(pattern,array);它的返回值是一個新數組,新數組的元素是成功匹配的元素。
⑹ php 正則中 這個表示什麼 /\</i 原句是preg_match('/\</i',$url)
你好,preg_match函數是php內置的一個正則匹配函數,它的匹配規則必須加上前後/;比如我要匹配字元a 可以這樣寫 preg_match('/a/',$url); 而你那個是 /\</i 裡面的\是個轉義字元(特殊字元需要轉義)而i表示忽略大小寫,其實按照你的這個匹配要求可以不用寫i ;自然你這個的意思就是匹配<
如果$url這個字元串中包含<則返回1否則返回0(preg_match(pattern,$url)返回 pattern 的匹配次數。 它的值將是0次(不匹配)或1次,因為preg_match()在第一次匹配後 將會停止搜索)
⑺ thinkphp驗證器正則常用規則
ThinkPHP的自動驗證常用的正則
一般我們見的比較多的是設置規則為require、email之類的,其實這些本身也是屬於正則表達式驗證方式,只是系統內置定義了一些常用的正則表達式而已。這些內置的正則表達式的定義可以參考model類的regex方法,內置支持的正則定義包括:
require 欄位必須、email 郵箱、url URL地址、currency 貨幣、number 數字、zip 郵編、integer 整數、double 浮點數、english 英文字母,但是並不局限於這些正則規則的,我們完全可以直接在驗證規則裡面使用正則表達式進行定義,這樣我們可以憑借強大的正則表達式來進行表單欄位驗 證,例如:
附上一些表單驗證中比較常用的正則表達式寫法:
匹配特定字元串:
限定符
限定符用來指定正則表達式的一個給定組件必須要出現多少次才能滿足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種。
正則表達式的限定符有:
ThinkPHP的自動驗證機制是為了進行表單數據驗證,驗證可以支持function、 callback、confirm、equal、unique和regex,這里要講的是使用正則表達式進行驗證。
特殊字元
許多元字元要求在試圖匹配它們時特別對待。若要匹配這些特殊字元,必須首先使字元"轉義",即,將反斜杠字元 放在它們前面。下表列出了正則表達式中的特殊字元:
正則表達式(regular expression)描述了一種字元串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。
例如:
構造正則表達式的方法和創建數學表達式的方法一樣。也就是用多種元字元與運算符可以將小的表達式結合在一起來創建更大的表達式。正則表達式的組件可以是單個的字元、字元集合、字元范圍、字元間的選擇或者所有這些組件的任意組合。
正則表達式是由普通字元(例如字元 a 到 z)以及特殊字元(稱為"元字元")組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字元串。正則表達式作為一個模板,將某個字元模式與所搜索的字元串進行匹配。
普通字元包括沒有顯式指定為元字元的所有可列印和不可列印字元。這包括所有大寫和小寫字母、所有數字、所有標點符號和一些其他符號。
非列印字元也可以是正則表達式的組成部分。下表列出了表示非列印字元的轉義序列:
所謂特殊字元,就是一些有特殊含義的字元,如上面說的 runoo*b 中的 ,簡單的說就是表示任何字元串的意思。如果要查找字元串中的 * 符號,則需要對 * 進行轉義,即在其前加一個 : runo*ob 匹配 runo ob。
許多元字元要求在試圖匹配它們時特別對待。若要匹配這些特殊字元,必須首先使字元"轉義",即,將反斜杠字元 放在它們前面。下表列出了正則表達式中的特殊字元:
限定符用來指定正則表達式的一個給定組件必須要出現多少次才能滿足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種。
正則表達式的限定符有:
由於章節編號在大的輸入文檔中會很可能超過九,所以您需要一種方式來處理兩位或三位章節編號。限定符給您這種能力。下面的正則表達式匹配編號為任何位數的章節標題:
請注意,限定符出現在范圍表達式之後。因此,它應用於整個范圍表達式,在本例中,只指定從 0 到 9 的數字(包括 0 和 9)。
這里不使用 + 限定符,因為在第二個位置或後面的位置不一定需要有一個數字。也不使用 ? 字元,因為使用 ? 會將章節編號限制到只有兩位數。您需要至少匹配 Chapter 和空格字元後面的一個數字。
如果您知道章節編號被限制為只有 99 章,可以使用下面的表達式來至少指定一位但至多兩位數字。
上面的表達式的缺點是,大於 99 的章節編號仍只匹配開頭兩位數字。另一個缺點是 Chapter 0 也將匹配。只匹配兩位數字的更好的表達式如下:
或
* 、+限定符都是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的後面加上一個?就可以實現非貪婪或最小匹配。
例如,您可能搜索 HTML 文檔,以查找括在 H1 標記內的章節標題。該文本在您的文檔中如下:
<H1>Chapter 1 - 介紹正則表達式</H1>
貪婪: 下面的表達式匹配從開始小於符號 (<) 到關閉 H1 標記的大於符號 (>) 之間的所有內容。
非貪婪: 如果您只需要匹配開始和結束 H1 標簽,下面的非貪婪表達式只匹配 <H1>。
如果只想匹配開始的 H1 標簽,表達式則是:
通過在 *、+ 或 ? 限定符之後放置 ?,該表達式從"貪心"表達式轉換為"非貪心"表達式或者最小匹配。
定位符使您能夠將正則表達式固定到行首或行尾。它們還使您能夠創建這樣的正則表達式,這些正則表達式出現在一個單詞內、在一個單詞的開頭或者一個單詞的結尾。
正則表達式的定位符有:
⑻ php 正則校驗是否是域名
1.檢測域名格式正確性的函數
//檢測域名格式
functionCheckUrl($C_url){
$str="/^http(s?)://(?:[A-za-z0-9-]+.)+[A-za-z]{2,4}(?:[/?#][/=?%-&~`@[]':+!.#w]*)?$/";
if(!preg_match($str,$C_url)){
returnfalse;
}else{
returntrue;
}
}
2.使用方法
$url="http://www..com/";//填寫你要檢測的域名
if(!CheckUrl($url)){
echo"域名格式不正確";
}else{
echo"域名格式正確";
}