2012-09-01 45 views
0

卷曲有问题使用卷曲抓住有冒号源名称的URL的内容得到了一个PHP脚本。处理URL源用冒号

Could not resolve host: http; nodename nor servname provided, or not known <url here> 

我仔细检查过该网址是另有工作正常,但我怀疑卷曲在文件名中的冒号窒息。来源不是我的,所以我不能删除冒号。

是否有其他解决方法?

+0

该URL不是“正常工作”,您将获得404“未找到”。 – alfasin

+0

在我的问题中的网址是人为设计和出于说明目的。 – capikaw

回答

1

望着man page卷曲--data-进行urlencode标志。

如果这只是一个URL不是通过CLI而是通过PHP完成的,则可以使用PHP的urlencode()

+0

感谢塔科的建议。我给它射击,我收到以下错误:卷曲错误:无法解析主机:http%3A // www.awebsite.com/anxml%3Afile%3Athatoddly%3Ahascolons%3Aallovertheplace%3A;节点名称或服务名称提供,或不知道http://www.awebsite.com/anxml:file:thatoddly:hascolons:allovertheplace: – capikaw

+0

这是因为你的URL编码的http:// – taco

+0

嘿塔科,是的,我试过编码只是最后一部分,看起来像是这个问题 - 发生我从错误使用cURL错误。我已经提供了一个答案来澄清它的用途。 – capikaw

1

提供程序修复了他们的文件,所以我不必再处理冒号了。事实证明,我终究不正确地使用了cURL,而urlencode()和下面的代码可能会起作用。

这并不工作:

$url = urlencode($url); 
    $url = str_replace("http%3A","http:",$url); 

    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    $data = curl_exec($ch); 

这没有工作:

$url = urlencode($url); 
    $url = str_replace("http%3A","http:",$url); 

    $c = curl_init($url); 
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
    $data = iconv("UTF-8","ISO-8859-1",curl_exec($c)); 

希望帮助别人了。