一套程序中需要在指定的URL页面中提取里面所有的域名,现代码如下:
$CODE = ......;//这里是获取远程的URL内容
$temp = "/<a((.|\\n)*?)<\\/a>/i";
preg_match_all( $temp, $CODE, $Jzz_thlld );
$Jzz_thlld = $Jzz_thlld[0];
$temp = "/ href=[\"']?http:\\/\\/www\\.([^>\"' ]+)[\"']?\\s*[^>]*>(.*)<\\/a>/si";
for ($dos_skipping = 0; $dos_skipping < sizeof( $Jzz_thlld ); $dos_skipping++ )
{
preg_match( $temp, $Jzz_thlld[$dos_skipping], $tempurl );
if ( !( $tempurl[1] != "" ) && !( strpos( $tempurl[1], "?" ) === FALSE ) && !( strpos( $tempurl[1], "&" ) === FALSE ) && !( strpos( $tempurl[1], "#" ) === FALSE ) && !( strpos( $tempurl[1], ":" ) === FALSE ) && !( strpos( $tempurl[1], " " ) === FALSE ) )
{
echo '99';
$url_temp = "www.".$tempurl[1];
if ( 0 < strpos( $url_temp, "/" ) )
{
$url_arr = explode( "/", $url_temp );
$url_temp = $url_arr[0];
}
if ( $Jzz_cbgsf == "" )
{
$Jzz_cbgsf = $url_temp;
}
else if ( strpos( "||".$Jzz_cbgsf."||", "||".$url_temp."||" ) === FALSE )
{
$Jzz_cbgsf .= "||".$url_temp;
}
}
}
上述代码中不能按照需求获取到所需要的信息,忘各位帮忙看看,改如何修改!!
PHP实现获取域名的方法参考。
方法一(用 系统变量)
//缺点不使用传递过来的地址和不支持系统变量的主机
echo $_SERVER['HTTP_HOST'];
方法二(用自带函数)
$url = 'http://www.jb51.net/index.php?referer=jb51.net';
$arr_url = parse_url($url);
echo $arr_url['host'];
方法三( 自己写函数)
function getdomain($url)
{
$url = str_replace('http://',”,$url); //如果有http前缀,则去掉
$pos = strpos($url,'/');
if($pos === false)
{
return $url;
}else
{
return substr($url, 0, $pos);
}
}
echo getdomain($url);
方法四(用正则)
preg_match("/^(http://)?([^/]+)/i", $url, $arr_domain);
echo $arr_domain[2];
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。