我在泡菜。我剛接手一份新工作,老程序員使用BLOB/bin將內容輸入到MYSQL中。使用preg_replace或htaccess替換url字符串
有1000行我需要「查找並替換」一個新的圖像網址。
當我導出MYSQL數據庫,我無法做一個查找和全部替換,因爲數據是二進制?
我不確定我的選擇是什麼?
我正在考慮使用PHP preg_replace或嘗試爲這些圖像編碼.htaccess重寫或重定向規則?
www.oldsite.com/images/
到
www.newsite.com/images/
我真的不知道哪種方式更好,更有效率?
我希望我知道如何查找和替換所有二進制文件,或者如果可能?
感謝您的幫助或提示!
編輯
太好了!所以,我可以做這樣的事情
$myString = rawurldecode($offer['description']);
$newString = preg_replace('/www.myoldsite.com/', 'www.mynewsite.com', $myString);
echo $newString;
* 編輯#2和結論*
我最終搞清楚如何做一個查找和替換!感謝@ user113215
結束了使用下面的代碼,它的工作很棒!事件與二進制文件!
UPDATE table_name SET column = REPLACE(column_name, 'www.old.com/', 'www.new.com/')
謝謝!希望這可以幫助別人!
考慮直接用'UPDATE'和MySQL的['REPLACE()'字符串函數]修改數據庫(http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace) 。這可能需要使用[ALTER TABLE]轉換相關列的字符集(http://dev.mysql.com/doc/refman/5.0/en/charset-conversion.html)。 – user113215 2013-03-23 21:12:31
感謝您的評論!這是否適用於二進制文件? – eberswine 2013-03-23 21:14:52
我在說的是你在MySQL服務器上運行的SQL語句,比如'UPDATE table_name SET column = REPLACE(column_name,'www.old.com/','www.new.com /')',而不是針對文件副本。這將直接修改數據庫。我不確定是否可以在'BLOB'列中使用'REPLACE()',但如果該列中的數據是_actually_字符串,則可以使用'ALTER TABLE'將列類型更改爲'VARCHAR',例如,然後運行'UPDATE'。 – user113215 2013-03-23 21:32:44