导航:首页 > 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正则提取域名相关的知识