我正在尝试使用file_get_contents()从页面获取html
以下工作很好:file_get_contents('http://www.mypage.com?Title=Title')
但以下会导致错误:
$Title = 'Title';
file_get_contents("http://www.mypage.com?Title=$Title")
错误是:
Bad Request
Your browser sent a request that this server could not understand.
The request line contained invalid characters following the protocol string.
Apache/1.3.41 Server at eiit.org Port 80
有谁知道为什么?
答案 0 :(得分:2)
您正在使用带单引号的字符串;并且没有单引号的变量插值。
这意味着您尝试提取的网址为http://www.mypage.com?Title=$Title
,而不是http://www.mypage.com?Title=Title
。
你应该使用双引号字符串来进行变量插值:
$Title = 'Title';
file_get_contents("http://www.mypage.com?Title=$Title");
如果这仍然不起作用:
file_get_contents
,而是将其存储在变量中,然后回复它 - 只是为了确保它是正确的。www.mypage.com
Title=Title
http://www.mypage.com/index.php?Title=$Title
之类的东西?甚至是http://www.mypage.com/?Title=$Title
?答案 1 :(得分:1)
单引号内的变量不进行插值;试试:
$Title = 'Title';
file_get_contents("http://www.mypage.com?Title=$Title")
答案 2 :(得分:0)
你试过http://www.mypage.com/?Title=$Title
吗?域名后面的斜杠是路径 - 您必须始终在HTTP请求中有一个路径。
答案 3 :(得分:0)
如果我不解决你的问题,你可以试试另一种方式。 (虽然我觉得这不重要)
$Title = 'Title';
$result=file_get_contents("http://www.mypage.com?Title=".$Title)