php文档中没有详细说明,不过man curl中有详细解释,两者都是代理,proxytunnel(-p参数)允许其他协议通过http代理传输,而proxy(-x参数)则只能走http协议。所以我猜测,google baidu的服务器和curl的proxytunnel不和,所以返回403。 禁用掉上面2行代码的第一句后,curl访问恢复正常。 另外,几种操作系统下还不一样,一台MAC OSX就要显式的禁用proxytunnel才可以,curl版本:
而另外一台ubuntu则完全不受影响,怎么都能用,curl版本:
MT主机上的centos也没事,curl版本:
看来不完全是curl版本问题,MAC OSX的确与众不同啊。 还有一个原因也会导致curl返回403错误,如果设置了:
则需要紧跟着设置:
不然会因为http服务器不允许 head 命令而返回403错误。 参考:Trouble with a cURL request in PHP(http://forums.devshed.com/php-development-5/trouble-with-a-curl-request-in-php-445222.html)。 MAC OSX上curl之所以特殊,也不排除是这种原因吧。 |
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号