在php中替换get_header?

时间:2014-04-10 04:43:40

标签: php

我正在创建一个从页面抓取链接的函数。 现在可以有不同的方法在href标签中指定链接..

1)http://example.com

2)http://www.example.com

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值。它正在发出关于未能打开流的警告。

2 个答案:

答案 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