我想用PHP替換文本字符串中的某些單詞& MySQL。替換mysql中的單詞
例如, -
數據庫中的文本列包含值「Word1 word2 word3 word4 word5 word3」。
我想用「新詞」替換「word3」和「word4」。挑戰不是取代也是「word3」的最後一個詞
有什麼建議嗎?
我想用PHP替換文本字符串中的某些單詞& MySQL。替換mysql中的單詞
例如, -
數據庫中的文本列包含值「Word1 word2 word3 word4 word5 word3」。
我想用「新詞」替換「word3」和「word4」。挑戰不是取代也是「word3」的最後一個詞
有什麼建議嗎?
可以使用通配符字符和控制符號,以取代%字%或%wo.d%以同樣的方式,你可以停止更換如果達到符號的某些計數
另外,如果你想代替像'word1,word2,word3,word4,word3'這樣的smth,你可以'UPDATE table SET col ='word,1 word2 ,wordX,word4,word3'where col ='word1,word2,word3,word4,word3'但我不認爲它是通用的做事方法,LIKE搜索也不會有太大幫助 –
的MySQL:
UPDATE `tableName`
SET `field` = REPLACE(' word3 ', ' newword ', REPLACE(' word4 ', ' newword ', `field`));
注意word3
和word4
之前和之後的額外空格。
基於評論:
UPDATE `tableName`
SET `field` = TRIM(REPLACE(' word3 word4 ', ' newword ', CONCAT(' ', `field`)));
嘿謝謝。我想用一個單詞替換word3和word4。從上面的語句也可以看出,word3的兩個實例都不會被替換嗎? – user2131970
但它不會處理最後的話。在後面看到「挑戰不是取代也是」word3「的最後一個單詞」 –
它將處理最後一個單詞,因爲REPLACE參數中的尾部空格。但我認爲它不會處理「word3」或「word4」是* first *這個詞的情況。也許把'field'改成'CONCAT(',field)'? –
你可以使用這個PHP腳本來代替 「WORD3」 和 「word4」 到 「newword」。
< PHP
$ ARR =陣列( 「字詞1」, 「單詞2」, 「WORD3」, 「word4」, 「的word5」, 「WORD3」, 「word4」)?; (str_replace(「word3」,「newword」,$ arr,$ i));
print_r(str_replace(「word4」,「newword」,$ arr,$ i));
echo「Replacements:$ i」; >
在PHP:
<?php
$mystr = "Word1 word2 word3 word4 word5 word3";
$mywords = explode(' ', $mystr);
for ($i = 0; $i < count($mywords)-1; $i++) {
if ($mywords[$i] == 'word3' || $mywords[$i] == 'word4') {
$mywords[$i] = 'newword';
}
}
$newstr = implode(' ', $mywords);
print("newstr = $newstr");
?>
此分割的話到一個數組,替換所有word3
和word4
與newword
除了用於陣列的最後一個元素,然後加入詞語回爲串。輸出如期:
Word1 word2 newword newword word5 word3
此問題沒有顯示任何研究工作。 **做你的作業很重要**。告訴我們你發現了什麼,***爲什麼它不符合你的需求。這表明你已經花時間去嘗試幫助你自己了,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案。 [FAQ](http://stackoverflow.com/questions/how-to-ask)。 –
建議學習字符串函數,如'str_replace()' – samayo
替換數據庫或輸出中? – hjpotter92