首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Curl Download Web Page Web错误

Curl Download Web Page Web错误
EN

Stack Overflow用户
提问于 2012-09-13 01:13:27
回答 2查看 1.1K关注 0票数 2

我正在尝试下载一个网页,例如:

http://www.site.com/savings/thispage?OneId=88&SecondId=185

CURL在这个页面上失败了;我怀疑是因为&符号。如何转义此“与”符号以允许下载完成?

错误为Unable to resolve host

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-13 01:22:55

看看:url_encode();rawurlencode();

返回一个字符串,其中除-_之外的所有非字母数字字符。已替换为百分号(%),后跟两个十六进制数字和编码为加号(+)的空格。它的编码方式与WWW表单中发布的数据的编码方式相同,也就是与application/x-www- form -urlencoded媒体类型中的编码方式相同。这与»RFC3986编码(参见rawurlencode())的不同之处在于,由于历史原因,空格被编码为加号(+)。

更新:由于错误是Unable to resolve host,请确保您的/etc/resolv.conf文件具有0644的权限。这将确保安全性,并允许Apache/PHP读取和解析主机名。

您可以通过调用gethostbyname();检查PHP和Apache是否可以访问DNS服务。

票数 2
EN

Stack Overflow用户

发布于 2012-09-13 02:07:08

如果你正在做像这样的事情

代码语言:javascript
复制
<?php

$url = "http://www.site.com/savings/thispage?OneId=88&SecondId=185";
$encoded = urlencode($url);

// use cURL to fetch $encoded

?>

那么你实际上就是在请求cURL去取http%3A%2F%2Fwww.site.com%2Fsavings%2Fthispage%3FOneId%3D88%26SecondId%3D185。这将被视为主机名,因为没有"/“字符将主机名与请求路径分开。

你是如何启动cURL的?您是在使用PHP library,还是通过system()shell_exec()之类的东西运行它?根据启动方式的不同,您可能需要以不同的方式进行转义(或者根本不转义)。

如果您实际上是从命令行(而不是从PHP )运行它,那么下面这样的代码应该可以很好地运行:

代码语言:javascript
复制
curl 'http://www.site.com/savings/thispage?OneId=88&SecondId=185'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12393242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档