我从网站上抓了一个html字符串。在此字符串中,它包含多个字符串,如color:#0269D2
。如何制作str_replace
代码,将此字符串替换为另一个color
?
比如这样的事情只是循环遍历color:#0269D
字符串变量中的所有fulltext
?
str_replace("color:#0269D","color:#000000",$fulltext);
答案 0 :(得分:0)
将数组传递给str_replace函数,不需要使用循环
$a= array("color:#0269D","color:#000000");
$str= str_replace($a,"", $string);
答案 1 :(得分:0)
你有正确的语法。我会添加一张支票:
$newText = str_replace("color:#0269D", "color:#000000", $fulltext, $count);
if($count){
echo "Replaced $count occurrences of 'color'.";
}
此代码可能对您要执行的操作过于贪心。小心。此外,如果字符串完全不同,例如color: #0269D
,则不会发生此替换。
答案 2 :(得分:0)
'str_replace'已经用替换字符串替换了所有出现的搜索字符串。
如果您想要替换所有颜色但不确定您会发现哪些十六进制代码可以使用preg_replace
来匹配模式与正则表达式的多次出现并替换它。
在你的情况下:
$str = "String with loads of color:#000000";
$pattern = '/color ?: ?#[0-9a-f]{3,6}/i';
$replacement = "color:#FFFFFF";
$result = preg_replace($pattern, $replacement, $str);