我正在使用类似的命令
$page = file_get_contents($url);
Run Code Online (Sandbox Code Playgroud)
在哪里
$url = "http://www.site.com/search/index.cfm?tab=names&workername=firstname lastname";
Run Code Online (Sandbox Code Playgroud)
当 url 直接在浏览器中输入时,chrome 会%20在名字和姓氏之间添加一个,网站会正确处理。
但是,当我使用带有空格的 $url 时,file_get_contents 只抓取与名字匹配的结果,并且不知道 workername = "firstname lastname"
当我在它之间明确添加“%20”时,它返回NULL......
有什么工作?
谢谢你们!
几个问题:
?,所以不,这些变量都不存在于 中$_GET。%20必须重新定义URL 的空间。$url = 'http://www.site.com/search/?tab=names&workername=firstname%20lastname';
^ ^ ^^^ ^
Run Code Online (Sandbox Code Playgroud)
编辑:
您尝试查询的网站可能会忽略它们作为 GET 变量。您是否尝试过添加此代码来明确表示这是一个 GET 请求?
$options = array(
'http' => array('method' => "GET", 'header' => "Accept-language: en\r\n")
);
$context = stream_context_create($options);
file_get_contents($url, false, $context);
Run Code Online (Sandbox Code Playgroud)