Пример:
Имеется строка:
<span><span>квад</span>рат</span>
<span><span>ку</span>бик</span>
Мне нужно вырезать вложенный тег, чтобы получилась строка:
<span>квадрат</span>
<span>кубик</span>
Большая просьба помочь.. Уже долго-долго сижу и не могу составить регулярное выражение..
Заранее, спасибо! :(
Спустя 4 минуты, 13 секунд (18.11.2010 - 18:10) DedMorozzz написал(а):
preg_replace_callback юзай.
Спустя 18 минут, 1 секунда (18.11.2010 - 18:28) Йакуд написал(а):
Пытался уже заюзать... Чего только не юзал.. битый час уже сижу..
Голова кипит..
Кто, может, поможет добрым кодом?
Голова кипит..
Кто, может, поможет добрым кодом?
Спустя 5 часов, 10 минут, 39 секунд (18.11.2010 - 23:39) Йакуд написал(а):
После долгого дополнительного обучения регулярок, я добился полного успеха! Наконец-то почти полностью в них разобрался. Данная задача решается таким способом:
Этот скрипт может убить любые вложенные теги типа <span>, расположенные в любом порядке, где могут быть любые символы...
while(preg_match("#(?:\<span\>)(.*\<span\>.*\</span\>.*){1,}(?:\<\/span\>)#i", $s, $arr)){
$s = str_replace($arr[1], preg_replace("#(\<span\>)|(\<\/span\>)#", "", $arr[1]), $s);
}
Этот скрипт может убить любые вложенные теги типа <span>, расположенные в любом порядке, где могут быть любые символы...
Спустя 31 минута, 25 секунд (19.11.2010 - 00:10) Йакуд написал(а):
Хм, единственное, что не учел, так это такое случай...
У меня получается вот так:
Должно получиться нечто, вроде:
Как можно исправить, чтобы правильно все находил?
<span><span>квад</span>рат</span> <span><span>ку</span>бик</span> <span>Текст</span>
У меня получается вот так:
<span>квадрат кубик Текст</span>
Должно получиться нечто, вроде:
<span>квадрат</span> <span>кубик</span> <span>Текст</span>
Как можно исправить, чтобы правильно все находил?
Спустя 32 минуты, 3 секунды (19.11.2010 - 00:42) inpost написал(а):
Йакуд
Не красиво обращаться за помощью сюда, чтобы потом этот скрипт на конкурс выложить! =) Хотя спасибо за идею, это тоже надо бы мне подправить! =)
Не красиво обращаться за помощью сюда, чтобы потом этот скрипт на конкурс выложить! =) Хотя спасибо за идею, это тоже надо бы мне подправить! =)
Спустя 4 минуты, 20 секунд (19.11.2010 - 00:47) Йакуд написал(а):
inpost
Одно дело весь скрипт, другое небольшой момент в регулярках..
Я же не прошу, написать за меня подсветку текста =)
Одно дело весь скрипт, другое небольшой момент в регулярках..
Я же не прошу, написать за меня подсветку текста =)
Спустя 41 минута, 19 секунд (19.11.2010 - 01:28) inpost написал(а):
Ладно, пойду и я задам, раз такое дело с регулярками =)
Спустя 5 часов, 34 минуты, 36 секунд (19.11.2010 - 07:02) kirik написал(а):
Йакуд серьезно к вопросу подошел
Спустя 2 часа, 11 минут, 17 секунд (19.11.2010 - 09:14) Семён написал(а):
Цитата (kirik @ 19.11.2010 - 08:02) |
Йакуд серьезно к вопросу подошел |
Мой информатор сообщил, что у Йакуд-а, скрипт сможет менять обои в linux-e
Спустя 20 минут, 4 секунды (19.11.2010 - 09:34) kirik написал(а):
Цитата (Семён @ 19.11.2010 - 01:14) |
Мой информатор сообщил, что у Йакуд-а, скрипт сможет менять обои в linux-e |
Сплагиатил, однако...
Спустя 5 дней, 19 часов, 9 минут, 12 секунд (25.11.2010 - 04:43) inpost написал(а):
Йакуд
Вот всё сделал, кроме этого! Теперь я застрял на этом и усердно пытаюсь изучить регулярку =)
Вот всё сделал, кроме этого! Теперь я застрял на этом и усердно пытаюсь изучить регулярку =)
Спустя 13 часов, 20 минут, 7 секунд (25.11.2010 - 18:03) Dron19 написал(а):
Цитата (Йакуд @ 18.11.2010 - 21:47) |
inpost Одно дело весь скрипт, другое небольшой момент в регулярках.. Я же не прошу, написать за меня подсветку текста =) |
<?
error_reporting(0);
function highlight_code($code)
{
$code = stripslashes($code);
if(!strpos($code,"<?") && substr($code,0,2)!="<?") {
$code="<?php\n".trim($code)."\n?>";
}
$code = trim($code);
return highlight_string($code,true);
}
$code = '
if(!$flag)
{
echo("Hello");
$var = 1;
}
else break;';
echo highlight_code($code);
?>
Вот те и подсветка кода
Спустя 3 минуты, 19 секунд (25.11.2010 - 18:06) inpost написал(а):
Вперёд на конкурс =) Сразимся на поле брани!
Спустя 3 минуты, 42 секунды (25.11.2010 - 18:10) Dron19 написал(а):
Цитата (inpost @ 25.11.2010 - 15:06) |
Вперёд на конкурс =) Сразимся на поле брани! |
=)
Спустя 2 месяца, 8 дней, 3 часа, 41 минута, 32 секунды (5.02.2011 - 21:52) Dron19 написал(а):
Вот тебе регулярка
<?php
$text =
'
<span><span>квад</span>рат</span>
<span><span>ку</span>бик</span>
';
$strip_of_tag = preg_replace("/(<.*?>)<.*?>(.*?)<\/.*?>(.*?)(<\/.*?>)/im","\\1\\2\\3\\4",$text);
echo $strip_of_tag;
?>