Удаление строк

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 16 окт 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Здравствуйте.
    В переменной $html разный текст, помогите, пожалуйста, удалить тэг img, если в атрибуте src этого тэга нет http://
     
    Iwashka нравится это.
  2. failometr

    failometr Постоялец

    Регистр.:
    30 апр 2009
    Сообщения:
    128
    Симпатии:
    45
    Примерчик
    PHP:
    $html = <<< KKKKKK
    <img src="http://asfwe.bla">
    fsdf
    <img src="httasfwe">
    afwfewefwef
    <img src="/h/ttsfwe">
    fwefdf
    <img src="http://asfwe.com">
    KKKKKK;

    echo 
    "$html\r\n\r\n";

    preg_match_all('#<img .*?>#si'$html$matches);
    foreach(
    $matches[0] as $v)
    if(!
    preg_match('# src\s*=\s*[\'"]http://#si',$v))
    $html str_ireplace($v''$html);

    echo 
    $html;
     
    Iwashka нравится это.
  3. CNiks0N

    CNiks0N lamp.root

    Регистр.:
    28 ноя 2008
    Сообщения:
    230
    Симпатии:
    48
    Код:
    preg_match_all('#<img .*?>#si', $html, $matches); 
    лучше заменить на
    Код:
    preg_match_all('#<img [^>]+>#si', $html, $matches); 
     
  4. darkangelmsk

    darkangelmsk Писатель

    Регистр.:
    12 окт 2010
    Сообщения:
    9
    Симпатии:
    1
    Думаю в данном случае кроме регулярных выражений можно использовать (для меньшей нагрузки) также функцию strip_tags('img');
     
    propovednik нравится это.
  5. CNiks0N

    CNiks0N lamp.root

    Регистр.:
    28 ноя 2008
    Сообщения:
    230
    Симпатии:
    48
    тоже вариант :)
    но мне почему-то всегда проще регулярками резать
     
  6. propovednik

    propovednik Постоялец

    Регистр.:
    16 май 2008
    Сообщения:
    104
    Симпатии:
    21
    Красиво и просто :) Но у топикстартера задача - резать именно с определенным src
     
  7. pitkina

    pitkina

    Регистр.:
    1 апр 2007
    Сообщения:
    253
    Симпатии:
    176
    или еще так, одной регуляркой

    PHP:
    $html=preg_replace('#(<img[^>]*http://[^>]*>)|<img[^>]*>#i','$1',$html);
     
    failometr нравится это.
Статус темы:
Закрыта.