php无法打开流 - 没有这样的文件或目录

时间:2011-03-10 00:46:14

标签: php html stream

我有以下php代码:

<html><body>

    <?php include('scores.php?filename=scores/score.sco&scoresize=10&action=VIEW&viewtype=HTML'); ?>
</body>
</html>

您可以在此处查看结果: http://apps.facebook.com/krajecr/pokus2.php

正如你所看到的,它告诉我,它不存在。但如果我只使用链接: http://apps.facebook.com/krajecr/scores.php?filename=scores/score.sco&scoresize=10&action=VIEW&viewtype=HTML 它工作得很好,我完全看到了我想看到的东西。请问哪里有问题?

4 个答案:

答案 0 :(得分:2)

如错误所示,“scores.php?filename = scores / score.sco&amp; scoresize = 10&amp; action = VIEW&amp; viewtype = HTML”不是文件或目录。仅仅因为您可以在Web浏览器中输入查询字符串参数(“?”和之后)并不意味着它们是文件名的一部分。文件名为scores.php

看起来你想通过网络服务器发出请求,而不仅仅是打开本地文件。幸运的是,include allows本身也是如此。但是,您必须指定它:

<html>
  <body>
    <?php include('http://someserver.com/scores.php?filename=scores/score.sco&scoresize=10&action=VIEW&viewtype=HTML'); ?>
  </body>
</html>

或者(最好是保存HTTP请求),如果scores.php位于同一个网络服务器上,您可以将其作为普通文件访问,但事先设置$_GET参数,因为这些参数将存活通过include指令:

<html>
  <body>
    <?php
    $_GET = Array('filename' => 'scores/score.sco'); // add the others here too
    include('scores.php');
    ?>
  </body>
</html>

希望有所帮助。

答案 1 :(得分:0)

问题在于,当您确实需要通过Web服务器访问时,您已将其指定为通过文件系统进行访问。输入完整的网址。

更好的是,将脚本转换为包含到函数中,然后包含并调用它。

答案 2 :(得分:0)

据我所知,你不能使用带参数的include,它必须是文件名。你可以设置$ _GET ['var'] ='value';在你打电话之前包括一个有效的方式。

答案 3 :(得分:0)

你不能用get值做包含。

您可以使用

设置所有获取值

$ _ GET [..] = ...

然后再做

包括( 'scores.php')