Php 无法使用动态创建位置的文件内容
我正在尝试使用file_get_contents()从页面获取html。Php 无法使用动态创建位置的文件内容,php,Php,我正在尝试使用file_get_contents()从页面获取html。 以下内容非常有用:file\u get\u 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 serv
以下内容非常有用:
file\u get\u 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
有人知道为什么吗?单引号内的变量不会被插值;尝试:
$Title = 'Title';
file_get_contents("http://www.mypage.com?Title=$Title")
您正在使用带单引号的字符串;没有单引号的变量插值 这意味着您试图获取的URL是
http://www.mypage.com?Title=$Title
,而非http://www.mypage.com?Title=Title
应使用双引号字符串进行变量插值:
$Title = 'Title';
file_get_contents("http://www.mypage.com?Title=$Title");
如果这仍然不起作用:
- 检查您的URL是否正常:不要直接将其传递到
,而是将其存储在一个变量中,并回显它——以确保它是正确的文件\u get\u contents
- 为什么您的URL中没有页面名称?
- 你有域名:
www.mypage.com
- 和一个参数+值:
Title=Title
- 但是没有文件/页面?i、 例如,为什么你没有像
?甚至http://www.mypage.com/index.php?Title=$Title
http://www.mypage.com/?Title=$Title
- 你有域名:
- 您可能需要修改URL中作为参数传递的值
http://www.mypage.com/?Title=$Title
?域名后的斜杠是路径-您必须在HTTP请求中始终具有路径。如果我没有,如果您已经解决了问题,请尝试另一种方法。(尽管我认为这无关紧要)
哎呀,我确实用了双引号,当我把它放在这里的时候,这是一个打字错误,为什么你不复制粘贴你的错误代码;谁知道你是否有其他打字错误:)我不想发布实际代码。我喜欢在发布之前将其匿名。Pascals post就是为什么你应该复制和粘贴,然后可能会将www.yourreal.url更改为www.example.com,做一些类似$title='title'的事情;不要让任何人看到你是否犯了基本的错误。不一定是真的:把你的浏览器。。。斜杠被(Web服务器)重写,但您的请求得到site@Erik:添加斜杠的是Web服务器还是您的浏览器?检查HTTP请求时,浏览器似乎会发送一个以/开头的GET请求,即使我没有将它放在原始URL中——这表明/是由浏览器添加的,而不是serverPascal是正确的<代码>获取HTTP/1.1不是有效的HTTP请求。浏览器将其转换为
GET/HTTP/1.1
。
$Title = 'Title';
$result=file_get_contents("http://www.mypage.com?Title=".$Title)