Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法使用动态创建位置的文件内容_Php - Fatal编程技术网

Php 无法使用动态创建位置的文件内容

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_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 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)