PHP脚本修改文件名问题:如何将动态源文件改为固定文件名test.gif
问题解决:将动态JPG文件名重命名为固定test.gif
你的脚本问题出在str_replace(".jpg","test.gif",$file)这一步——它只是把原文件名里的.jpg后缀替换成了test.gif,比如原文件是abcdefg.jpg,就会变成abcdefgtest.gif,而不是直接替换整个文件名为test.gif。
修改后的脚本
直接指定目标路径为目录加上固定文件名即可:
<?php $directory = '/public_html/Weercam/FI9853EP_00626EA2E6A9/snap/'; foreach (glob($directory."*.jpg") as $filename) { $file = realpath($filename); // 直接拼接目录和固定文件名 $target_file = $directory . 'test.gif'; rename($file, $target_file); } ?>
补充说明
- 如果目录下存在多个
.jpg文件,后续的文件会覆盖之前生成的test.gif,最终只会保留最后一个被处理的文件内容。 - 也可以用
pathinfo函数拆分路径,实现更灵活的目录处理(效果和上面一致):
<?php $directory = '/public_html/Weercam/FI9853EP_00626EA2E6A9/snap/'; foreach (glob($directory."*.jpg") as $filename) { $file = realpath($filename); $path_info = pathinfo($file); $target_file = $path_info['dirname'] . '/test.gif'; rename($file, $target_file); } ?>
内容的提问来源于stack exchange,提问作者Hans Schulte
相关产品推荐
相关产品推荐

