За последние 24 часа нас посетили 16114 программистов и 1666 роботов. Сейчас ищут 1014 программистов ...

Удалить <span>теги

Тема в разделе "PHP для новичков", создана пользователем allowance, 14 фев 2011.

  1. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Пробую удалять span теги таким образом:
    Код (Text):
    1. $text = preg_replace( "/<span.+?>/", '', $text);
    2. $text = str_replace("</span>", "", $text);
    Но если имеется такая строка <span>test</span>, тогда удаляется вся строка, а нужно чтобы удалились только <span></span> а test должен остаться!

    При таком условии:
    HTML:
    1. <span style="font-size: small;">test</span>
    test остаётся а теги <span style="font-size: small;"></span> удаляются как и нужно.
     
  2. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    PHP:
    1. <?php
    2. $text = '<span style="font-size: small;">test</span><span>Span2</span>';
    3.  
    4. $text = preg_replace('/<span[^>]*>(.*)<\/span>/Ui', '\\1', $text);
    5.  
    6. var_dump($text); //string(9) "testSpan2"
    7. ?>
     
  3. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Devzirom
    Thanks!
     
  4. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Devzirom
    А не подскажете как удалить данные теги с текстом внутри тегов...
     
  5. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    PHP:
    1. <?php
    2. $text = '<p>onP<span style="font-size: small;">test</span><span>Span2</span></p>';
    3.  
    4. $text = preg_replace('/<span[^>]*>(.*?)<\/span>/i', '\\1', $text);
    5.  
    6. var_dump($text); //string(19) "<p>onPtestSpan2</p>"
    7. ?>
    Вроде правильно удаляется
     
  6. YZ4

    YZ4 Новичок

    С нами с:
    10 апр 2018
    Сообщения:
    1
    Симпатии:
    0
    чтобы убрать тег с его содержимым нужна такая регулярка:
    Код (Text):
    1. /<span[^>]*>.*?<\/span>/i
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  8. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.