我正在创建一个从页面抓取链接的函数。 现在可以有不同的方法在href标签中指定链接..
3)example.com
4)文件/下载
5)www.example.com
现在,1),2)和5)的格式正确。 但在添加3)和4)之前,我想以适当的url格式制作它们......
这意味着3)应成为http://example.com并且4)应成为
http:// THECURRENTPAGEURLDOM / files / download
我使用get_headers来区分相对URL和独立URL。因此,如果我通过在前面添加http://来测试example.com的标题,它将返回一些标题和
如果我通过相同的方法测试文件/下载的头文件,它将返回无法打开流而不是一些假值,我可以用它来知道它的相对URL。
那么为什么get_headers不会返回false值。它正在发出关于未能打开流的警告。
答案 0 :(得分:1)
1- you should have the base your, e.g: example.com
2- check if th url is not a url, then the append it to the base url
is_url($url)
{
return (bool) filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED);
}
$url = '/files/download';
$base_url = 'http://example.com';
if !is_url($url) {
$url = rtrim($base_url, '/') . '/' . ltrim($url, '/');
}
// continue your code ....
答案 1 :(得分:0)
使用curl()
或file_get_contents()
更快地响应使用curl
有关详情: - PHP get_headers() alternative