-3

我想使用 PHP & MySQL 替换文本字符串中的一些单词。

例如 -

数据库中的文本列包含值“Word1 word2 word3 word4 word5 word3”。

我想用“newword”替换“word3”和“word4”。挑战不是替换最后一个单词,也就是“word3”

有什么建议么?

4

4 回答 4

0

在 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的所有元素,然后将单词重新连接成一个字符串。输出符合预期:word4newword

Word1 word2 newword newword word5 word3
于 2013-03-29T14:08:53.300 回答
0

您可以使用通配符和控制符号来替换 %word% 或 %wo.d%,就像在达到一定数量的符号时停止替换一样

于 2013-03-29T13:50:49.287 回答
0

MySQL:

UPDATE `tableName`
SET `field` = REPLACE( ' word3 ', ' newword ', REPLACE(' word4 ', ' newword ', `field`) );

word3注意and之前和之后的额外空格word4


根据评论:

UPDATE `tableName`
SET `field` = TRIM( REPLACE(' word3 word4 ', ' newword ', CONCAT( ' ', `field` )) );
于 2013-03-29T13:54:13.460 回答
0

您可以使用此 php 脚本将“word3”和“word4”替换为“newword”。

<?php

$arr = array("word1","word2","word3","word4","word5","word3","word4");

print_r(str_replace("word3","newword",$arr,$i));

print_r(str_replace("word4","newword",$arr,$i));

echo "替换:$i"; ?>

于 2013-03-29T14:02:38.780 回答