2015-06-19 4 views
0

Я очистил строку html с веб-сайта. В этой строке он содержит несколько строк, таких как color:#0269D2. Как я могу сделать код str_replace, который заменяет эту строку другим color?Заменить несколько элементов в строке

Например, что-то вроде этого просто перебирает все color:#0269D в строковой переменной fulltext?

str_replace("color:#0269D","color:#000000",$fulltext); 
+0

Вам не нужно перебрать, чтобы заменить все экземпляры одного и того же. Из руководства str_replace, «str_replace» - замените все вхождения строки поиска на строку замены " –

ответ

0

вы передаете массив str_replace функции, нет необходимости использовать петлю

$a= array("color:#0269D","color:#000000"); 

$str= str_replace($a,"", $string); 
0

Вы имеете право синтаксис. Я бы добавил чек:

$newText = str_replace("color:#0269D", "color:#000000", $fulltext, $count); 
if($count){ 
    echo "Replaced $count occurrences of 'color'."; 
} 

Этот код может быть слишком жадным из-за того, что вы ищете. Осторожный. Также, если строка отличается вообще, например color: #0269D, эта замена не произойдет.

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); 
Смежные вопросы