我怎么知道它是否是PHP的绝对域名

时间:2011-08-20 22:39:49

标签: php regex

我正在获取一个链接,其中有一个href ...我想知道它是否是

http://[...].com/file.txt absolute domain name

/file.txt

没有完整网址的链接。

如何使用PHP执行此操作?

2 个答案:

答案 0 :(得分:3)

使用parse_url,看看你是否有方案和主持人。例如,这个:

$url   = 'http://username:password@hostname/path?arg=value#anchor';
$parts = parse_url($url);
echo $url, "\n", $parts['scheme'], "\n", $parts['host'], "\n\n";

$url   = '/path?arg=value#anchor';
$parts = parse_url($url);
echo $url, "\n", $parts['scheme'], "\n", $parts['host'], "\n\n";

产地:

http://username:password@hostname/path?arg=value#anchor
http
hostname

/path?arg=value#anchor

实例:http://ideone.com/S9WR2

这也允许您检查方案,看看它是否是您想要的(例如,您经常要忽略mailto:个网址)。

答案 1 :(得分:0)

您可以将preg_match与正则表达式一起使用来测试url字符串的格式。您需要根据需要修改$myurl,可能会将其作为变量传递。

<?php
$myurl = "http://asdf.com/file.txt"; // change this to meet your needs

if (preg_match("/^http:/", $myurl)) {
    // code to handle
    echo 'http url';
}
else if (preg_match("/^\\//", $myurl)) {
    // code to handle
    echo 'slash url';
}
else {
     // unexpected format
    echo 'unexpected url';
}

?>