WordPressデータベースにmysqlを使用している必要があるため、次のように正規表現を使用してこの置換を行うことができます。
正規表現パターン: #http://(www.)?hotfile.com/\w+/\w+/\w+/#
交換パターン:http//p.music.cdndomain.com/vod/music.folder/2010/
別のより簡単な解決策は、mysqlの単純な文字列関数を使用してmp3ファイル名を抽出することです。
SUBSTRINGまたはSUBSTRING_INDEXを使用して、mp3ファイルのファイル名を抽出します。つまり、ホットファイルのURLで「/」が最後に出現した後の文字列を検索します。
CONCATを使用して、取得したファイル名を新しいURLプレフィックスに追加し、データベースで更新します。
次に例を示します。データベースに合わせて適切に変更できます。
mysql> select * from test_songs;
+---------------------------------------------------------------+
| song_url |
+---------------------------------------------------------------+
| http://hotfile.com/dl/157490069/c8732d4/mp3_file_name.mp3 |
| http://www.hotfile.com/dl/123412312/dd732d4/mp3_song_name.mp3 |
+---------------------------------------------------------------+
部分文字列を取る:
mysql> select SUBSTRING_INDEX(song_url,"/",-1) from test_songs;
+----------------------------------+
| SUBSTRING_INDEX(song_url,"/",-1) |
+----------------------------------+
| mp3_file_name.mp3 |
| mp3_song_name.mp3 |
+----------------------------------+
2 rows in set (0.03 sec)
最終更新クエリの作成:
mysql> Update test_songs set song_url =
CONCAT("http//p.music.cdndomain.com/vod/music.folder/2010/",
SUBSTRING_INDEX(song_url,"/",-1)) ;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
結果の確認:
mysql> select * from test_songs;
+---------------------------------------------------------------------+
| song_url |
+---------------------------------------------------------------------+
| http//p.music.cdndomain.com/vod/music.folder/2010/mp3_file_name.mp3 |
| http//p.music.cdndomain.com/vod/music.folder/2010/mp3_song_name.mp3 |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)
終わり !