为什么我得到1而不是所需的文件?

时间:2011-10-09 01:29:03

标签: php require

  

可能重复:
  including php file from another server with php

我想拥有自己的错误系统而不是php错误,所以例如我需要来自另一台服务器的文件而该服务器现在不可用

<?php
require 'http://example.com/file.php' or die ("that host is not available right now");
?>

但我得到了

  

警告:require(1)[function.require]:无法打开流:没有这样的   第5行的C:\ xampp \ htdocs \ index.php中的文件或目录

     

致命错误:require()[function.require]:打开所需的'1'失败   (include_path ='。; C:\ xampp \ php \ PEAR')in   第5行的C:\ xampp \ htdocs \ index.php

2 个答案:

答案 0 :(得分:6)

这是因为require 'foo' or bar()被解释为require ('foo' or bar())'foo' or bar()等于true,即1。如果你想这样写,请使用不同的括号:

(require 'http://example.com/file.php') or die ("that host is not available right now");

但是,这里根本不需要die,因为如果无法加载所需的文件,require将暂停程序执行。只需require 'http://example.com/file.php';即可。是否应该通过网络实际加载外部PHP文件是另一个故事(提示:可能不是)。

答案 1 :(得分:3)

问题是运营商的优先顺序。 PHP包含“或”比较的结果(true)。尝试删除它。

include('http://...') or die('error...');

它会起作用。