導航:首頁 > IDC知識 > php正則提取域名

php正則提取域名

發布時間:2020-12-22 02:14:34

1、PHP-php中如何使用正則表達式匹配URL中的域名

^<?php 
// 從 URL 中取得主機名 
preg_match("/^(http://)?([^/]+)/i", "IP/index.html", $matches); 
$host = $matches[2]; 
// 從主機名中取得後面兩段 
preg_match("/[^./]+.[^./]+$/", $host, $matches); 
echo "domain name is: {$matches[0]} "; 
?>

2、php正則表達式取出中間值

$pattern = '/(?<=:s)"[80-xff:w]+"(?=,)/';
//$pattern = '/(?<=:s")[80-xff:w]+(?=",)/';//不需要引號的時候
preg_match($pattern,'{ "t": "我是真的love:you", "i": "',$match);
print_r($match);

測試應該可以。。當然還有其他正回則表達式的寫答法

3、用php的正則如何取得一個未知子域名級數的主域名

域名的規則是從後向前遞歸查詢dns,查到後訪問...

比如www.aaa.com.cn假設在萬網注冊的,主dns設置為dns23.hichina.com
那麼訪問的時候是要先搜索.cn的dns伺服器裡面有沒有www.aaa.com.cn的記錄(一般來講是沒有,會返回.com.cn的dns伺服器)
沒有的話要搜索.com.cn的伺服器裡面有沒有記錄(這時候返回dns23.hichina.com)
然後dns23.hichina.com返回www.aaa.com.cn的IP
然後才轉向那個IP

從規則上面來看的話,似乎根本沒有後綴那種東西...

寫程序的話,只能抽象的模擬一下了...

4、PHP正則表達式,取出兩個字元串中間的字元。

<?php 

$str ='"pic_url":"g-dsdf.fadsfdasfdkjdafndasdjfdadfd.jpg","detail_url":".html
棉大碼男裝夏裝寬松加肥","pic_url":"g-dsdf.jhfghdfhsft.jpg","detail_url":".html
個性幾何圖形印花短袖T恤","pic_url":"g-nnnmmrtdfff.t.jpg","detail_url":".html';

preg_match_all("@"pic_url":"(.*).jpg"@", $str, $match);

echo '<pre>';var_mp($match);exit();

把上述代碼運行一下

這應專該就是屬你要的數據吧

5、PHP 正則表達式 /<a .*?href=\"(http.*?.*?)\".*?>/is 獲取a標簽中的url ,我只想獲取url中包含域名abc

^/<a .*href=(['"])https?://abc.com[^1]*1.*>/
測試:
/<a .*href=(['"])https?://abc.com[^1]*1.*>/.test("<a href='http://abc.com/index'>")

6、PHP 正則後瞻 匹配是否是域名

|$domain = 'baidu.com';

echo isDomain($domain);

function isDomain($domain) {
return !empty($domain) && strpos($domain, '--') === false &&
preg_match('/^([a-z0-9]+([a-z0-9-]*(?:[a-z0-9]+))?\.)?[a-z0-9]+([a-z0-9-]*(?:[a-z0-9]+))?(\.us|答\.tv|\.org\.cn|\.org|\.net\.cn|\.net|\.mobi|\.me|\.la|\.info|\.hk|\.gov\.cn|\.e|\.com\.cn|\.com|\.co\.jp|\.co|\.cn|\.cc|\.biz)$/i', $domain) ? true : false;
}

7、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
)

8、php正則提取頁面body和body之間的內容

/<body.*?>(.*?)<\/body>/is
.*?最小匹配,如果去掉?號,則默認是貪婪匹配
而前面加了?:則表示.*?所匹配的結果不會保存在緩沖區內

9、PHP正則表達式如何檢測現有的正確郵箱域名後綴?

這個是IT群里的朋友!我不去群里了,在這里幫你把問題解決了吧!

其實嚴格說來,正則表達式只是一個模型匹配,所以直接使用模型匹配時我們有一個高通原理,也就是說匹配出來的內容是要大於你所需要的內容。就比此題來說,後邊可以匹配任何一個合規則的內容,而不可能精確地直接是你想要的內容——這就是高通,如果非要匹配到你想要的內容,使用正則運算有時是非常不合適的!所以這里不建議你使用這方式,或者是部分使用這種方式的形式。

高通就是通過你不全是你想要的,但你想要的一定全在里邊。

那麼,為什麼不考慮使用ajax的方式呢?後台自己設計一會資料庫,@前半段使用正則表這式,扣後半段直接使用數據存儲的內容,這樣可以精確到任何一個你想要的。

因為這里你想要的與不想要的其實也很模糊,你也不知道ckk這個域名在以後是不會被啟用!那麼你可以使用資料庫方式,由管理員自由添加!不用去修改那將來的表達式的!

但事實上很少人用這種方式——他們都在使用注冊時郵箱認證的方式,也就是說,發到你郵箱里一封信,輔助你完成注冊,這種情況雖然是高通,其他實他只是方便用戶能輸入正確,而不是要的確信數據,任何設計都要記著這句話——任何客戶端的信息都是不可信的!就算用JS完成了正則,那麼如果對方有意屏掉您的JS這十分容易的!所以你的正則根本不是用來驗證,而是方便用戶。

正是這種原因,高通的理由也是其存在的一個原因!就算使用了我說的資料庫,利用ajax來檢查,那麼別人照樣可以讓你的ajax不工作,而且,不是伺服器通過了,郵箱就一定有人注冊的!所以從這方面上來講,資料庫的實現意義也不大!

根據js的特點,客戶端的驗證沒有必要太這於麻煩,就算是服務端的驗證,建議你的也只採用這種方式即可。沒有使用資料庫的必要的——這個代價與達到的效果是不成比例的!

說完了,其實等於我也不解決!

10、求高手寫php驗證域名的正則表達式

||<?php
$str = "http://www.12aa_china521.com";
$strlen = strlen($str);
if($strlen<2 || $strlen>46)
{
echo "域名長度為2-46";
exit;
}
$arr = explode(".",$str);
if(strtolower(end($arr))=="cn")
{
if(strpos($str,"china") || strpos($str,"chinese"))
{
echo "cn後綴的域名不允許含有china或者chinese";
exit;
}
}
$preg = "/^(?:http:\/\/)?www.[0-9a-zA-Z]+_?[0-9a-zA-Z]+.(?:com(?:.cn)?|net|org|info|mobi)$/";
if(preg_match($preg,$str))
{
echo "域名正確";
}else{
echo "域名不正確";
}
?>

與php正則提取域名相關的知識