【问题标题】:PHP renaming index filesPHP重命名索引文件
【发布时间】:2018-10-02 19:11:57
【问题描述】:

我正在尝试使用 PHP 切换索引文件,并采用了一种方法来重命名相应的索引文件,如下所示:

<?php
rename("/index.html", "/REALindex.html");
rename("/index2.html","index.html");
?>

PHP 脚本位于索引文件的子文件夹中,但是当我运行这个 php 时,文件没有任何反应,所以我想知道我应该如何调试以及为什么它不工作..?

非常感谢。

【问题讨论】:

  • 发布您的文件夹结构。
  • "/index.html" 是位于驱动器根目录中的文件,您很可能无法在其中写入。使用__DIR__dirname() 从脚本目录开始构建文件的路径,或者如果要重命名的文件位于与尝试重命名它们的脚本。
  • 如果您的服务器配置良好,PHP 可能无权重命名您尝试的路径上的文件。
  • @AlexanderJovric 基于该文件结构,尝试使用“../index.html”,而不是“/index.html”,因为我假设 php 比 index.html 文件低一级.

标签: php rename file-rename


【解决方案1】:

如果您的 PHP 脚本有权编辑您正在运行的本地目录(基于您所做的评论),那么您的 HTML 文件比 php 高一级,因此请尝试:

rename("../index.html", "../REALindex.html");
rename("../index2.html","../index.html");

【讨论】:

  • 我得出的结论是PHP缺少权限,我会尝试解决这个问题,然后尝试您的解决方案! :)
  • 这样做了:chmod -R 777 /var/www/html/php 并尝试提出建议但没有奏效.. :(。我应该如何调试这个?
  • @AlexanderJovric 它是您要编辑的父目录,而不是 /php。尝试 `/var/www/html' 上的 chmod,因为这些是您想要编辑权限的文件,而不是 php 脚本。
  • 是的!现在工作!感谢大家对此的投入。
  • 仅供参考 - 在生产环境中使用 777 是不明智的。
【解决方案2】:

注意路径开头的正斜杠。这可能是偶然的,而您不情愿地尝试将文件从文件系统根目录移出/移入,而文件系统根目录却没有?

【讨论】:

    【解决方案3】:

    灵魂:

    chmod -R 777 /var/www/html

    +

    rename("../index.html", "../REALindex.html");
    rename("../index2.html","../index.html");
    

    【讨论】:

      猜你喜欢
      • 2012-08-01
      • 2014-09-09
      • 2014-01-20
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      相关资源
      最近更新 更多