作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我是一名优秀的程序员,十分优秀!