Замена #1075 и. т.п. на php - как сделать?

Статус
В этой теме нельзя размещать новые ответы.

Neow15ard

Постоялец
Регистрация
26 Ноя 2008
Сообщения
418
Реакции
190
Нужна замена в переменной вcех вхождений символов вида &#xxxx на соответсвующий символ .
 
Код:
$s = 'бгогапр&#1080';
$res = ereg_replace('&#1075','x', $s);
 
Не сделаешь это регуляркой (можно и регуляркой, но через callback-функцию).
Проще str_replace по массиву.

jik, отвыкай от ereg* - это уже прошлое.
 
Не совсем то..
исходник к примеру
HTML:
"потолок & #1042;ибропласт и Битопласт и деш& #1105;& #1074;ые & #1074;"
(Убрать пробел между & # при работе)

в нем необходимо заменить все эти д..е тэги на буквы.Пробел фиг с ним его как понятно(&nbsp).
а вот буквы как?.
Нужен практический совет...я уже 3 час копаю но у меня мозг с регулярками не дружит (((
как хотябы выдирать тэги...таблицу замены то я накатаю..

ЗЫ. Написал str_replace на каждый тег.
 
ЗЫ. Написал str_replace на каждый тег.
Суровый ты парень :D
str_replace умеет работать с массивами - скорми ей текст и 2-а массива (с тэгами и их заменой).
 
я поначалу не понял, в каком виде хранятся данные в строке. Тогда такой вариант:

Код:
$str = preg_replace('/&#(\\d+);/e', 'code2xxx($1)', $str);

только надо определиться, в какую кодировку конвертировать.
Функцию code2xxx реализовать как code2utf или как code2win1251.

jik, отвыкай от ereg* - это уже прошлое.
Спасибо, буду иметь ввиду, я не особо слежу за php.
 
PHP:
$str = html_entity_decode(preg_replace('/&\s*#/','&#',$str),ENT_QUOTES,'cp1251');
или
$str = html_entity_decode(preg_replace('/&\s*#/','&#',$str),ENT_QUOTES,'UTF-8');
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху