You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在CodeIgniter中如何用site_url访问application外的文件夹?代码无效求助

解决CodeIgniter访问外部目录文件的问题

嘿,这个坑我踩过!你之前用site_url() . '../../public_html/wp-blog-header.php'的问题很明确:site_url()返回的是浏览器能访问的URL地址,而require/require_once需要的是服务器本地的文件系统绝对路径,这俩根本不是一个维度的东西,代码自然跑不起来~

给你两种靠谱的实现方式,都是用CodeIgniter内置的路径常量来保证兼容性:

方法一:用APPPATH拼接路径

CodeIgniter自带的APPPATH常量已经指向了application文件夹的绝对路径,我们可以基于它往上回溯到目标目录:

// 拼接WordPress核心文件的绝对路径
$wp_header_path = APPPATH . '../../public_html/wp-blog-header.php';

// 先检查文件是否存在,避免致命错误
if (file_exists($wp_header_path)) {
    require_once $wp_header_path;
} else {
    // 调试阶段可以加这个提示,上线后可以换成日志记录
    die('错误:找不到WordPress的wp-blog-header.php文件,请检查路径是否正确');
}

方法二:直接使用DOCUMENT_ROOT(更直观)

如果你的public_html是网站的根目录,也可以用服务器的$_SERVER['DOCUMENT_ROOT']常量直接拼接:

$wp_header_path = $_SERVER['DOCUMENT_ROOT'] . '/wp-blog-header.php';

if (file_exists($wp_header_path)) {
    require_once $wp_header_path;
} else {
    die('错误:WordPress核心文件路径不正确');
}

额外提醒

  • 一定要用file_exists()做前置检查,不然文件找不到的时候会直接抛出致命错误,影响整个程序运行;
  • 确保Web服务器的运行用户(比如apache、www-data)拥有读取wp-blog-header.php文件的权限;
  • 尽量避免使用相对路径(比如../../)直接拼接,因为如果你的CI脚本在不同子目录下,相对路径会失效,而用内置常量的绝对路径更稳定。

内容的提问来源于stack exchange,提问作者Adnan Arif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:32:33