Прошу помощи! переменная содержит код html, необходимо сделать найти и заменить часть кода("<span style="color:#A9A9A9"><strong><Фирма></strong></span>"), на другое значение. сделать это функцией str_replace() не получается, так же strpos() тоже не находит
Код (PHP): $str = '<div><span style="color:#A9A9A9"><strong><Фирма></strong></span></div>'; $r= str_replace('<span style="color:#A9A9A9"><strong><Фирма></strong></span>', '<p>hello</p>', $str); echo $r;
да, так все получается, но я значение "<span style="color:#A9A9A9"><strong><Фирма></strong></span>" беру из базы, и str_replace( $data[0] , '<p>hello</p>', $str)- уже не срабатывает Код (Text): $data = Array ( [0] => <span style="color:#A9A9A9"><strong><Фирма></strong></span> [1] => <span style="color:#A9A9A9"><strong><ВидДеятельности></strong></span> )
тебе "...фирма..." и "...ВидДеятельности..." нужно заменить на <p>hello</p> ? Или "...фирма..." на <p>hello1</p>, а "...ВидДеятельности..." на <p>hello2</p>? https://secure.php.net/manual/ru/language.types.array.php
нужно "...фирма..." на <p>hello1</p>, а "...ВидДеятельности..." на <p>hello2</p> но $data[0] = '<span style="color:#A9A9A9"><strong><Фирма></strong></span>' и в данном случае str_replace($data[0] ,'<p>hello1</p>', $str) , почему то не заменяется а при прямом подставлении str_replace('<span style="color:#A9A9A9"><strong><Фирма></strong></span>' ,'<p>hello1</p>', $str) замена происходит
так наверное для начала дубиноголовый надо было сказать что значение в теге меняется. это все сюрпризы или еще будут? Код (PHP): $str = '<div><span style="color:#A9A9A9"><strong><Фирма></strong></span></div>'; $before = '<span style="color:#A9A9A9"><strong>'; $after = '</strong></span>'; $pattern = '|' . preg_quote($before) . '(.*?)' . preg_quote($after) . '|isu'; $new = preg_replace($pattern, '<div>new text</div>', $str); echo $new;
читай внимательней, ответ не в тему я не меняю значение в тегах!!!! я меняю в строке с тегами и значениями, определенный кусок с тегами и значениями, на другой кусок с тегами и значениями! это '<span style="color:#A9A9A9"><strong><Фирма></strong></span>' на '<p>hello1</p>' в строке $str
У меня всё работает и с массивом, возможно дело в другом, может кодировка не совпадает или не видим всей картины Код (PHP): <?php header('Content-Type: text/html; charset=utf-8'); $data = [ '<span style="color:#A9A9A9"><strong><Фирма></strong></span>', '<span style="color:#A9A9A9"><strong><ВидДеятельности></strong></span>', ]; $str = '<div><span style="color:#A9A9A9"><strong><Фирма></strong></span></div>'; $r= str_replace($data[0], '<p>hello</p>', $str); echo $r;