Замена <sup></sup> с помощью ereg_replace

LeRatO

Новичок
Замена <sup></sup> с помощью ereg_replace

Доброе время суток!

Коллеги, нужна помощь.

Вкратце задача...
Есть html-код со следующим фрагментом:
PHP:
...РОССИЙСКОЙ ФЕДЕРАЦИИ<sup>1)</sup>...
Нужно его преобразовать к виду:
PHP:
...РОССИЙСКОЙ ФЕДЕРАЦИИ 1) ...
При этом, таких входений может быть несколько и в <sub></sup> может быть заключено любое десятичное число от 1 до 20, а может и больше.

Для решения хочу задействовать ereg_replace:
PHP:
$content = ereg_replace('<sup>[[:digit:]]+)<\/sup>',' [[:digit:]]+) ',$content);
С поиском все нормально - фрагмент находится и... конечно же меняется на записанную во втором параметре последовательность символов. НО!!! Цель-то была заменить не на эти символы, а взять и перенести число, заключенное в <sup>-тег.

Как нужно написать второй параметр, чтобы получилось желаемое? И можно ли это сделать без дополнительных поисков по строке для выделения того самого числа.
 

kvf77

Red Devil
$rep = array('<sup>', '<sub>', '</sup>', 'и так далее');
str_replace($rep, '', $content);

-~{}~ 15.02.08 11:35:

короче я как понял теюбе просто надо убить теги sub и sup так замени их на пустоту.
 

LeRatO

Новичок
Автор оригинала: kvf77
$rep = array('<sup>', '<sub>', '</sup>', 'и так далее');
str_replace($rep, '', $content);
В том-то и дело, что нельзя. В html-коде есть еще последовательности
PHP:
<sup>3</sup>
(без закрывающей скобки после числа), в этом случае
PHP:
<sup>
и
PHP:
</sup>
меняются на пустую строку.
 

kvf77

Red Devil
команды ereg_* являются устаревшими и их лучше не использовать, они тормозные
 

LeRatO

Новичок
Автор оригинала: LeRatO
В том-то и дело, что нельзя. В html-коде есть еще последовательности
PHP:
<sup>3</sup>
(без закрывающей скобки после числа), в этом случае
PHP:
<sup>
и
PHP:
</sup>
меняются на пустую строку.
Нет, не совсем... мне нужно ссылку html-ную преобразовать в удобоваримый txt-вариант... Так как ссылка может стоять после числа, например, "-112<sup>2)</sup>", то просто убрать теги нельзя, так как исказится число ("-1122)"). Поэтому необходим отступ перед "2)", и на всякий случай после, так как и после ссылки сразу встык может быть текст.

-~{}~ 15.02.08 11:43:

Автор оригинала: kvf77
команды ereg_* являются устаревшими и их лучше не использовать, они тормозные
Тогда чем лучше пользоваться?
 

LeRatO

Новичок
Автор оригинала: WP
[m]preg[/m]
Да, по описанию похоже на то, что нужно мне... Сейчас попробую... Спасибо

-~{}~ 15.02.08 12:07:

Спасибо. Это именно оно!

На всякий случай код... вдруг кому придется решать подобную проблему:
PHP:
$content = preg_replace("/(<sup>)([[:digit:]]+\))(<\/sup>)/i"," \${2} ",$content);
 

WP

^_^
Жесть :) Во-первых никакой проблемы нет, во-вторых код сильно корявый.
 

Beavis

Banned
ну если нужен отступ перед 2) можно <sup> на пробел менять... странная какая-то проблема...
 
Сверху