我正在获取一个链接,其中有一个href ...我想知道它是否是
http://[...].com/file.txt absolute domain name
或
/file.txt
没有完整网址的链接。
如何使用PHP执行此操作?
答案 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
这也允许您检查方案,看看它是否是您想要的(例如,您经常要忽略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';
}
?>