我正在尝试解决使用php的字符串函数从文件名中删除时间戳的最佳方法。时间戳是从文件名的其余部分通过左侧的下划线和点开始右侧的文件扩展名(例如myfile_12343434.jpg) - 我只想在下划线之前的文本,虽然这个长度可以变化。处理这个问题的最好方法是什么?谢谢!带时间戳文件的PHP字符串处理帮助
2
A
回答
3
编辑离开扩展的完整(包括例如.gd2
和.JPEG
)做到这一点:
$new = preg_replace("/_\\d+(\\.[a-z0-9]+)\$/i","\\1",$orig);
这有效地去只有“_123”的一部分,在不那么漂亮的方式。对于我们之中的纯粹主义者,具有前向断言,只有消除了时间戳的版本:
$new = preg_replace("/_\\d+(?=\\.[0-9a-z]+\$)/i","",$orig);
0
0
最好的办法是使用preg_replace()
指定精确匹配。良好的开端是类似如下(这也会保护的扩展名):
$new = preg_replace("/_\d+/","",$orig);
但由于这是一个UNIX时间戳,我们可以做的,通过指定的数字部分,它将匹配的长度更好:
$new = preg_replace("/_\d{1,11}/","",$orig);
相关问题
- 1. 批处理文件中的子字符串帮助
- 2. 将字符串时间戳转换为PHP中的时间戳
- 3. PHP字符串到时间戳
- 4. 字符串到PHP时间戳
- 5. PHP日期 - 字符串到时间戳
- 6. 帮助批处理文件?
- 7. 时间戳字符串到PHP中的日期字符串
- 8. 将Unix时间戳转换为带Joda时间的字符串
- 9. Windows批处理:从字符串创建时间戳
- 10. 与字符串时间戳
- 11. 字符串到时间戳
- 12. 批处理文件帮助,for/do字符串的输出结果
- 13. 日期时间戳所需的帮助
- 14. 在php中处理unix时间戳?
- 15. 需要批处理文件帮助 - 函数,变量和子字符串
- 16. 需要帮助的批处理文件
- 17. 关于批处理文件的帮助
- 18. PHP字符串需要Concat帮助
- 19. PHP字符串帮助需要
- 20. PHP替换字符串帮助
- 21. 在java中的时间戳字符串到时间戳
- 22. 如何处理包含加号(+)运算符的时间戳字符串
- 23. 使用PHP转换字符串日期时间到时间戳
- 24. 如何格式化时间()字符串Unix时间戳在PHP
- 25. 转换YYMMDDHHMM日期/时间字符串到PHP时间戳
- 26. 从PHP时间戳(字符串)减去时间
- 27. Windows批处理:在文件中查找字符串中带有“[”的字符串
- 28. 帮助在PHP中需要时间处理
- 29. Mysql LONGTEXT带有时间戳字符串到实际的TIMESTAMP
- 30. Twitter状态时间戳帮助
+1对于preg_replace,这会使文件名的其余部分保持不变(包括扩展名)。但是我会使用'preg_replace(“/ _ \ d + /”,“”,$ orig)',因为我们知道时间戳应该是数字的。 – 2010-08-11 22:20:02
@JGB:嗯,这也将删除我认为是问题的扩展。但我可能会错,在这种情况下,'\ d'是解决问题的最佳方法。 – mvds 2010-08-11 22:24:04
感谢您的建议家伙 - 是的,我想保留扩展:)我会玩弄这些建议,以得到每个人如何工作的感觉 – dan727 2010-08-11 22:28:29