【问题标题】:Replace file in PHP [closed]替换PHP中的文件[关闭]
【发布时间】:2013-10-09 10:17:53
【问题描述】:

我想在 PHP 中用另一个图像文件替换一个图像文件。两者具有相同的名称(123),但它们位于不同的目录中,并且应该具有不同的扩展名。我想用第二张图片替换第一张图片。

  1. ../images/123.gif
  2. ../images/xxx/123.png

任何功能都可以吗?谢谢。

【问题讨论】:

  • 阅读manual?
  • 复制并覆盖具有不同扩展名的文件,您将得到一个伪装成 PNG 文件的 GIF 文件。您需要先转换图像。
  • 我阅读了手册,发现了像 copy()、rename() 和 unlink() 这样的函数,但我不知道这些函数是否能正确完成工作。另外我不想更改扩展名,只删除第一个图像并将第二个图像从不同的目录放在那里。
  • 你有什么代码实现给我们看看吗?
  • 对不起,我还没有任何代码。

标签: php file replace


【解决方案1】:

移动、删除、复制等都是使用文件系统时需要的基本操作。因此,文档无疑会包含您需要的所有信息。

  1. http://php.net/rename
  2. http://php.net/copy
  3. http://php.net/unlink

你说你想用第二个文件替换第一个文件。但你没有提到你想对第二个图像的原始副本发生什么?

如果您重命名(即移动)它,那么该文件将不再存在于它的起始位置。如果您希望文件保留在两个目录中,则应改用copy

在这种情况下,您只需要:

rename('/path/to/get/file.from', '/path/to/put/file.to');

注意:您可以使用相对模式(例如 ./../


附加代码

rename('/path/to/get/file.b', '/path/to/put/file.b');
unlink('/path/to/remove/file.a');

工作示例

rename('../image/new/8.jpg', '../image/8.jpg'); //Moves new (jpg) file to `../image` directory
unlink('../image/8.gif');                       //Delete old file with gif extension

【讨论】:

  • 非常感谢您的建议!
  • rename('/path/to/get/image.jpg', '/path/to/put/image.gif'); 这会做我想要的,但 png 图像会有 gif 扩展名。
  • 所以你要做的就是将 file bdirectory b 移动到 directory a 并删除第一张图片同名(减去扩展名)?
  • 检查更新的答案(链接到文档和附加代码)。所以你可以把它重命名为正确的文件扩展名
  • 可能是的,我觉得你描述得很好。
猜你喜欢
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多