我想拥有自己的错误系统而不是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
答案 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...');
它会起作用。