【问题标题】:PHP - unlink() works with direct path but not a required onePHP - unlink() 适用于直接路径,但不是必需的
【发布时间】:2018-12-18 14:35:33
【问题描述】:

我正在使用 unlink() 从目录中删除 PDF 文件。在这种情况下,文件名存储在变量中,即 $fileName。我已经测试以确保变量中的文件名与目录中的文件名匹配。

由于某种原因,它使用的是直接路径,但不是必需的。例如:

工作:

unlink('C:/xampp/htdocs/wordpress/wp-content/uploads/sample_dir/' . $fileName);

不工作:

unlink(require_once __DIR__ . '/../../uploads/sample_dir/' . $fileName);

没有抛出任何错误,它什么也不做。哎呀。

【问题讨论】:

  • 所以,这是试图通过从文件返回的全部内容来取消链接。请阅读require_once 的用途;)
  • require_once 如果成功,也会返回一个状态 1 所以你实际上是在尝试 unlink(1) 假设最好的情景
  • ...哎呀哈哈。那我该如何在没有直接路径的情况下删除这个文件呢?我问是因为我看到很多人说 $_SERVER['DOCUMENT_ROOT'] 不是一个好选择。
  • 只需使用取消链接 (DIR . '/../../uploads/sample_dir/' . $fileName);
  • 'facepalms' 效果很好,谢谢。

标签: php directory require unlink


【解决方案1】:
unlink($_SERVER['DOCUMENT_ROOT'] . 'additional path to folder' . $fileName);

【讨论】:

  • 感谢您的回复,这也有效。我只是试图尽可能少地使用硬编码路径。
【解决方案2】:

我注意到您正在使用 Wordpress,所以只需使用 wp_upload_dir()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多