警告:file_get_contents(text.php?text = a-e)[function.file-get-contents]:无法打开流:没有错误

时间:2011-02-20 14:24:03

标签: php include file-get-contents

if(isset($_GET['letters'])){
                        switch($_GET['letters']){
                            case 'a-e':
                                file_get_contents('text.php?text=a-e');
                                break;

                            case 'f-j':
                                file_get_contents('text.php?text=f-j');
                                break;

                            case 'k-o':
                                file_get_contents('text.php?text=k-o');
                                break;

                            case 'p-t':
                                file_get_contents('text.php?text=p-t');
                                break;

                            case 'u-z':
                                file_get_contents('text.php?text=u-z');
                                break;

                            default:
                                file_get_contents('home.php');
                                break;
                        }
                    }

在此代码中,我收到此错误:

Warning: file_get_contents(text.php?text=a-e) [function.file-get-contents]: failed to open stream: No error in *(the row of the file_get_contents())*

我也试过包括。但它不起作用?

2 个答案:

答案 0 :(得分:4)

您无法在脚本打开时将参数传递给文件。这可以在将页面的HTTP请求发送到服务器时完成,但在这种情况下不能。

另外,请注意切换案例必须是原子的。例如,如果$ _GET ['letters']为'b',则不会执行任何切换案例。

我无法从你的帖子中确切地知道你正在尝试做什么。如果要将文本存储在平面文件中,请使用更好的后缀,例如“.txt”。一种方法是具有多个文件,每个文件对应于一个类别(例如'a-e')。您可以在switch语句中设置文件名。

另一方面,如果您尝试在交换机中调用代码,则file_get_contents不是要使用的函数。请改用'require_once'my_file.php'。

答案 1 :(得分:2)

磁盘上没有'text.php?text = u-z'文件。

只需将您的链接参数从?letters更改为?text,然后再将其设为

if(isset($_GET['text'])){
    include('text.php');
}