【问题标题】:Wordpress plugin problem: can't get a text file in the same directory as the .phpWordpress 插件问题:无法获取与.php 相同目录中的文本文件
【发布时间】:2011-01-03 18:07:08
【问题描述】:

断章取义:

<?php
$options=file_get_contents('options.txt');
?>

这不起作用。 'options.txt' 与插件 .php 位于同一目录中。我究竟做错了什么?我认为由于 .php 是从其他地方包含的,所以路径是错误的,所以我尝试了“/wp-content/plugins/myPlugin/options.txt”。但是什么都没有……

【问题讨论】:

    标签: php wordpress file-get-contents


    【解决方案1】:

    您确实应该使用适当的 WordPress Plugin and Content Directories 函数来获取目录路径,以确保您的插件可以在未来版本的 WordPress 等上运行。

    顺便说一句,您确实意识到此文件在技术上可以通过 URL 公开查看? (只是提及它以防它包含任何甚至模糊的敏感内容。)

    【讨论】:

    • 是的,当然。没有什么敏感的。只需几个设置。
    • 顺便说一句,我终于做到了:$optionst=file_get_contents(plugins_url().'/my_plugin/options.txt');
    【解决方案2】:

    使用相对于 Wordpress 根目录的路径,前面不带斜杠:

    wp-content/plugins/myPlugin/options.txt
    

    【讨论】:

    • 但是应该有获取插件本身目录的函数。检查文档。
    • 做到了。妈的,我觉得自己很傻。但是,是的,我会检查文件功能。
    • 永远不要觉得自己愚蠢。展望未来!你刚才犯的错误已经解决了。 :)
    【解决方案3】:

    我强烈建议不要使用本机 file_get_contents() 方法。并非每个服务器设置都允许这样做,因此如果您曾经迁移您的网站或将代码提供给其他人,您可能会遇到问题。

    改为使用 WordPress 附带的内置 HTTP API。您的具体示例将变为:

    $options = wp_remote_retrieve_body( wp_remote_get( plugins_url() . '/my_plugin/options.txt' ) );
    

    这将使用内置 API 获取文本文件,然后检索 GET 请求的主体(将文本文件的内容存储在 $options 变量中。

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 2018-07-05
      • 2013-04-24
      • 2012-11-06
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2013-10-23
      • 1970-01-01
      相关资源
      最近更新 更多