gpt4 book ai didi

php - 如何让 DOCUMENT_ROOT 在本地主机和网络主机上工作?

转载 作者:行者123 更新时间:2023-12-02 17:55:57 24 4
gpt4 key购买 nike

我有一个 WordPress 插件,我想在本地主机上运行以及在不进行修改的情况下进行部署,但我似乎无法使用一条语句设置目录的位置。

我想这样做:

$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/wp-content/cache');

虽然这适用于网络主机。在本地主机上它会产生以下错误:

C:/xampp/htdocs/wp-content/cache/a547b8792c3144c98549be23ef1465e7.spc is not writeable

在本地主机上,我需要将其设置为此才能使其工作:

$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/mysite/wp-content/cache');

肯定有一些东西可以同时在本地主机和网络主机上运行!

谢谢。

最佳答案

所以看起来 OP 会对 WP_CONTENT_DIR 或 WP_PLUGIN_DIR 预定义常量感兴趣。

这适用于 WordPress 安装。但对于非 WP 情况,我发现以下代码片段很有用:

$docroot = realpath((getenv('DOCUMENT_ROOT') && ereg('^'.preg_quote(realpath(getenv('DOCUMENT_ROOT'))), realpath(__FILE__))) ? getenv('DOCUMENT_ROOT') : str_replace(dirname(@$_SERVER['PHP_SELF']), '', str_replace(DIRECTORY_SEPARATOR, '/', dirname(__FILE__))));

这是在类似的情况下,我希望在本地主机/开发环境和服务器环境上都能工作,其中文档根位置不同。但更重要的是,这适用于我需要独立运行 PHP 文件的情况。

更新

上述代码已于 2022 年 2 月进行编辑,以改进和删除已弃用和删除的功能,例如 ereg:

$docroot = realpath((getenv('DOCUMENT_ROOT') && 
preg_match('^'.preg_quote(realpath(getenv('DOCUMENT_ROOT')),'/').'^',
realpath(__FILE__))) ? getenv('DOCUMENT_ROOT') :
str_replace(dirname(@$_SERVER['PHP_SELF']), '',
str_replace(DIRECTORY_SEPARATOR, '/', __DIR__)));

关于php - 如何让 DOCUMENT_ROOT 在本地主机和网络主机上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/990133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com