Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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_Include - Fatal编程技术网

Php 函数。使用直接链接时包含错误

Php 函数。使用直接链接时包含错误,php,include,Php,Include,我正在尝试用一个日历插件替换一个旧的事件归档页面。在archive.php中,我有以下代码: <?php get_header(); $cat = get_query_var('cat'); $yourcat = get_category ($cat); global $gateway_parent_id; if ( $yourcat->slug == 'events' ){ include 'page-forum.php'; }else{ ?> 我做错了什么?您试图通

我正在尝试用一个日历插件替换一个旧的事件归档页面。在
archive.php
中,我有以下代码:

<?php get_header();
$cat = get_query_var('cat');
$yourcat = get_category ($cat);
global $gateway_parent_id;


if ( $yourcat->slug == 'events' ){
include 'page-forum.php';
}else{

?>

我做错了什么?

您试图通过包含文件。在服务器的PHP配置中禁用的url。您可以通过在php.ini中启用
allow\u url\u fopen
来解决此问题,或者最好使用文件路径

要通过文件路径包含文件,请使用相对于当前php文件的文件名的完整路径,并根据需要使用
。/
向上移动目录。例如,如果我想从
/root/dir/working/go.php
中包含
/root/test/save.php
,我会使用
include('../../test/save.php')
或只是
包含('/root/test/save.php')

及其相关项采用文件系统路径,而不是相对于文档根的web路径。要获取父目录,请使用
。/

例如,如果要包含的文件与archive.php位于不同的目录中,例如includes,则可以执行以下操作:

include('../includes/file.php');
如果以/开头,将使用绝对系统文件路径(换句话说:任何以斜杠开头的路径都将是绝对路径)。例如:

include('/home/user/public_html/project/include/config.php'); 

我希望这能回答您的问题。

我在Wordpress中找到了一个更好的解决方案-它可以重定向到绝对url,并避免使用htaccess:

<?php
wp_redirect( $location, $status );
exit;
?>

$location是指向的url,$status为301(永久重定向)或302(临时)


警告非常清楚,allow\u url\u open已禁用,因此无法将url作为文件打开,因此无法将其包含在内。如果存档页面在您的网站上,为什么不进行文件包含?建议使用本地路径,而不是通过绝对URL加载您自己网站的包含文件。如果您想消除这些错误,可以在php.ini文件中启用allow_url_fopen,但存在许多安全问题,如果您使用的是共享主机,您可能无法做到这一点。当日历页位于与存档不同的目录中时,我是否可以使用相对路径。php?@Chris Bishop:当然。见我的答案。:-)如果页面只是events/而不是events.php呢?这取决于站点的结构。如果
events/
是一个目录,那么您可以在该目录中包含
index.php
文件,否则您需要确定
events/
指向哪个文件。如果页面只是events/而不是events.php怎么办?
<?php
wp_redirect( $location, $status );
exit;
?>