【问题标题】:php rename folders with files intophp将带有文件的文件夹重命名为
【发布时间】:2012-08-13 20:29:20
【问题描述】:

我正在尝试用 PHP 编写一个脚本来重置我在数据库中的 ID。但我必须重命名表中具有相同 ID 的目录。

所以我尝试使用重命名功能但失败了。

我总是有“没有这样的文件或目录”。我尝试使用绝对或相对路径,更改 chmod,在之前使用睡眠,是的,我的文件夹存在。

所以我会知道为什么这不起作用:

rename('/uploads/photos/'.$old_id.'/', '/uploads/photos/'.$new_id.'/');

而且我的文件夹里面有一些文件。

【问题讨论】:

  • reset my ids in a database - 通常不是一个好主意。主键应该从它们引用的数据中抽象出来——它们应该与数据本身相关。请解释为什么你觉得你需要这样做。但要回答实际问题,请尝试不带前导/尾随斜杠的 rename('uploads/photos/'.$old_id, 'uploads/photos/'.$new_id);,除非您确实在文件系统根目录中有一个名为 /uploads 的目录(我对此表示怀疑)...
  • 你试过不带斜线吗?
  • 真的,我认为操作系统正在根文件夹中搜索“上传”。尝试使用完整路径,例如:/var/www/uploads/photos/....
  • 我需要重置 id,因为我有 118k 的结果,现在只有 200,它有干净的 id 和 url。我会尝试不使用前导斜杠,我尝试不使用尾部斜杠,结果是一样的。
  • DaveRandom 已经写过,id 值永远不应该被修改。 id 是对记录的永久引用。

标签: php directory rename


【解决方案1】:

只需在 php 中使用 linux 命令:

exec("mv $oldname $newname");

【讨论】:

  • 有时这是最好的解决方案。
【解决方案2】:

1- 修复父目录的权限。 (photos) 它必须是你的 php 用户可写的。

2- 确保您的路径正常/uploads/photos/...(您的第一个斜杠表示它是根目录的绝对路径)

【讨论】:

    猜你喜欢
    • 2011-02-08
    • 2014-09-09
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 2017-12-12
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多