2016-12-14 55 views
-2

我在我的MYSQL數據庫中有以下圖像,我想搜索和替換模式後的所有事件(包括星號*必須去的所有東西,但文件擴展需要保留 - *之後的字符數量不同,擴展名相同。) 感謝您的幫助!Php,如何刪除星號後的字符,並停止在文件擴展名

這是我有:

mo051316hires-5 * 100xx2304-2304-576-0.jpg

brandicourt-照片高分辨率-1 * 100xx3264-3264-816-0 .gif注意

這就是我想要的:

mo051316hires-5.JPG

brandicourt-照片高分辨率-1.gif

回答

1

使用preg_replace()這樣的:

$newFileName = preg_replace('/\*[^.]+/', '', $oldFileName); 

這看起來對文字*\*)和一個或多個非週期字符([^.]+)和替換他們與一個空的字符串。

3v4l.org demo

+0

太謝謝你了! – user1564379

+0

有沒有辦法在mysql查詢中包含這個(搜索和替換)? – user1564379

+0

@ user1564379因爲你用[tag:php]標記了這個標籤,並在標題中寫了「PHP,how to」,我沒有意識到你正在嘗試在MySQL查詢中執行此操作,而不是在PHP代碼中執行此操作。我很樂意解釋如何做到這一點,但這是一種非常不同的解決方案。您可以考慮將其作爲一個新問題,並在評論中發佈鏈接。 –

1

要解決現有的數據,使用MySQL:

試試這個:

SELECT CONCAT(
      SUBSTRING_INDEX(col, '*', 1), 
      '.', 
      SUBSTRING_INDEX(col, '.', -1) 
    FROM ... 

如果它看起來不錯,放它在

UPDATE ... 
    SET col = CONCAT ... 
相關問題