【问题标题】:is wordpress block some php function?wordpress 会阻止一些 php 功能吗?
【发布时间】:2020-04-13 21:04:37
【问题描述】:

我在我的站点根目录 (example.com/file.php) 中创建了一个 php 文件:

$head = array_change_key_case(get_headers("https://example.com/somefile.zip", TRUE));
$filesize = $head['content-length'];
echo $filesize;

当我运行文件时,我得到以下输出:1234173 它以千字节为单位返回文件大小。 我还在我的 WordPress 主题(example.com/wp-content/themes/my_theme/single.php)中使用完全相同的代码,但输出始终为 0。

为什么? (我使用此代码获取下载框中文件的大小)

使用 curl 时,我得到了相同的结果。 (curl 在我的根目录中是可以的,但它在 wp 中没有 content-length 参数)

【问题讨论】:

    标签: php wordpress curl get-headers


    【解决方案1】:

    我认为这是 wordpress 的问题。如您所见,您的示例有一个真实的 URL。 但是当你需要访问 my_theme/single.php 时,它是无效的。 让我们先看看代码。 single.php 用于渲染帖子。但 Post 有一个固定链接。加载 URL 时,会生成标头。但是如果我们调用single.php,它就会被阻塞。 如果你有开发插件,我们可以看到 ABS_PATH。 如果 ABS_PATH 未定义,则表示该文件已加载 wp-load.php。 所以如果我们调用 single.php,它不包含任何 Wordpress 核心。所以这是无效的响应和问题。 事实上,我们无法从主题中访问特殊文件。
    对于 Wordpress,调度程序函数位于 example.com/index.php。

    【讨论】:

      【解决方案2】:

      解决了!

      实际上问题是我的错误。 我使用这样的 URL:

      "/Path_to_file/file.zip"
      

      我改为:

      "Https://wxample.com/path/file.zip"
      

      网址必须包含网站地址。

      谢谢大家

      【讨论】:

        猜你喜欢
        • 2012-05-31
        • 2018-07-16
        • 2019-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-09
        • 2011-10-29
        相关资源
        最近更新 更多