我正在嘗試解決使用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