我尝试使用PHP从Internet获取数据。在工作中,我在密码保护代理之后,这似乎会造成麻烦。
我已经在StackOverflow和其他几个平台上查阅过很多帖子,每个平台都给我一个不同的解决方案,但没有一个可以满足我的需求。
var_dump(stream_get_wrappers());
$opts = array("http" => ['proxy'=>'user:password@webproxy.xxx.intra:####',
'request_fulluri' => True]
);
stream_context_set_default($opts);
$homepage = file_get_contents("www.google.com");
echo $homepage;
我已根据我之前阅读过的帖子中的建议添加var_dump(stream_get_wrappers());
,返回: [https,ftps,compress.zlib,compress.bzip2, php,文件,glob,数据,http,ftp,phar,zip]
我得到的警告如下:
PHP警告:file_get_contents(www.google.com):无法打开流:没有此类文件 或第15行/home/user/project/app/connector.php中的目录
第15行为$homepage = file_get_contents("www.google.com");
我已经被困在那里太久了,非常感谢任何帮助。
谢谢。
编辑:我添加了" http://"到地址的开头,给我这个错误:
PHP警告:file_get_contents(google.com):无法打开流: php_network_getaddresses:getaddrinfo失败:名称或服务没有 在第15行的/home/user/project/app/connector.php中已知
由于某种原因,这个错误显示了两次,第二个错误信息几乎相同。
答案 0 :(得分:0)
经过更多的搜索,我得出的是:
$auth = base64_encode('login:password');
$opts = array(
'http' => array(
'proxy' => 'tcp://proxy_host:proxy_port',
'request_fulluri' => true,
'header' => "Proxy-Authorization: Basic $auth",
),
);
$context = stream_context_create($opts);
$file = file_get_contents("http://www.google.com", False, $context);
echo $file;
这似乎工作正常。 感谢您的帮助和建议。