Я сделал что-то подобное с str_replace, используя это:
$string = $url; $patterns = array(); $patterns[0] = 'searchforme'; $patterns[1] = 'searchforme1'; $patterns[2] = 'searchforme2'; $replacements = array(); $replacements[0] = 'replacewithme'; $replacements[1] = 'replacewithme1'; $replacements[2] = 'replacewithme2'; $searchReplace = str_replace($patterns, $replacements, $string);
Как я могу сделать что-то подобное с preg_replace?
Я построил очень простой небольшой синтаксический анализатор css, который ищет определенный тег в комментарии, обернутом вокруг свойств CSS, и заменяет его новыми данными.
$stylesheet = file_get_contents('temp/'.$user.'/css/mobile.css'); $cssTag = 'bodybg'; $stylesheet = preg_replace("/(\/\*".$cssTag."\*\/).*?(\/\*\/".$cssTag."\*\/)/i", "\\1 background: $bg url(../images/bg.png) repeat-x; \\2", $stylesheet); file_put_contents('temp/'.$user.'/css/mobile.css',''.$stylesheet.'');
У меня есть несколько «cssTag», и им будет нужен уникальный css для замены (фон, цвет, размер шрифта и т. Д.), Поэтому я ищу метод, подобный str_replace выше.
preg_replace
может принимать массив точно так же, как str_replace
$string = 'I have a match1 and a match3, and here\'sa match2'; $find = array('/match1/', '/match2/'); $replace = array('/replace1/', '/replace2/'); $result = preg_replace($find, $replace, $string);