preg_replace - удалить лишний код

Тема в разделе "PHP", создана пользователем jcrush, 8 апр 2009.

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

    jcrush

    Регистр.:
    10 ноя 2006
    Сообщения:
    692
    Симпатии:
    55
    Добрый день, у меня есть отпарсенный текст, некоторые ссылки удалить получилось так:
    Код:
    $usd=preg_replace('|<a[^>]+>([^<]+)</a>|ism','$1',$usd); 
    но не все, и есть лишний текст и скрипты которые не нужны, нужен просто текст, без ссылок, картинок и скриптов, пример текста который парсится:
    Код:
    <A href="[URL="http://www.nulled.ws/view-source:http://khabara.ru/cinema/movies/details.asp?mid=2099596483"]/cinema/movies/details.asp?mid=2099596483[/URL]" target=_blank><IMG src="[URL="http://www.nulled.ws/view-source:http://khabara.ru/cinema/i/serv/lt_newwnd.gif"]/cinema/i/serv/lt_newwnd.gif[/URL]" align="absmiddle" border="0" alt="Открыть в новом окне"></A> <A href="[URL="http://www.nulled.ws/view-source:http://khabara.ru/cinema/movies/details.asp?mid=2099596483"]/cinema/movies/details.asp?mid=2099596483[/URL]" class="link1"><B class="sz4">Ведьмина гора</B></A> (США)<BR>Голосуй: <SCRIPT>get_rank(2099596483,3,1)</SCRIPT><BR>приключения / комедия / фантастика<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;<B>ФоРум</B> (Фиолетовый зал) 12:40, 16:15
    Подскажите как можно попроще убрать лишнее?
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    jcrush нравится это.
  3. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    189
    Создай папку result (права на запись (chmod 777))
    Создай файл index.php:
    PHP:
    <form action="index.php?mod=22" method="POST" enctype="multipart/form-data" name="form1" id="form1">
      <table width="100%" border="0" align="center" class="ttable">
        <tr>
          <td bgcolor="#D4D0C8"><strong>HTML to TXT </strong></td>
        </tr>
        <tr>
          <td><?php
          
    if(!is_writable('./result'))
          {
          echo 
    'Для работы скрипта необходимо установить права на запись (chmod 777) для папки <i>/result</i> !<br> ';
          exit;
          }
          
    ?></td>
        </tr>
        
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>Файл для очистки от HTML: 
            <label>
            <input name="file1" type="file" id="file1" />
          </label></td>
        </tr>
        
        <tr>
          <td><input name="act" type="hidden" id="act" value="go" />
          <input type="submit" name="Submit" value="Выполнить" /></td>
        </tr>
        <tr>
          <td>
          <?php
    function html2txt($document){
    $search = array('@<script[^>]*?>.*?</script>@si',  // Strip out javascript
                   
    '@<[\/\!]*?[^<>]*?>@si',            // Strip out HTML tags
                   
    '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly
                   
    '@<![\s\S]*?--[ \t\n\r]*>@',        // Strip multi-line comments including CDATA
                   
    '@\[.*\]@'
                   
    );
    $text preg_replace($search''$document);
    return 
    $text;
    }

    if(
    $_POST['act']=='go')
    {
    @
    unlink('./result/source.txt');
    @
    unlink('./result/result.txt');
    if (
    move_uploaded_file($_FILES['file1']['tmp_name'], './result/source.txt'))
    {
    echo 
    'Файл загружен...<br>';
    }
    else
    {
    echo 
    'Файл не загружен...'; exit;
    }

    $document=file_get_contents('./result/source.txt');
    $fs=fopen('./result/result.txt''w');
    fwrite($fshtml2txt($document));
    fclose($fs);

    echo 
    "Текст очищен...<br><a href='result/result.txt' target='_blank'>Скачать результат >></a>";

    }
    ?></td>
        </tr>
      </table>
    </form>
    </p>
    Результат:
    Код:
    Ведьмина гора (США)Голосуй: приключения / комедия / фантастика&nbsp;&nbsp;&nbsp;&nbsp;ФоРум (Фиолетовый зал) 12:40, 16:15
     
  4. jcrush

    jcrush

    Регистр.:
    10 ноя 2006
    Сообщения:
    692
    Симпатии:
    55
    Получилось то что надо, вот только текст
     
  5. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    189
     
    jcrush нравится это.
  6. jcrush

    jcrush

    Регистр.:
    10 ноя 2006
    Сообщения:
    692
    Симпатии:
    55
    Спасибо, добавил еще

    $usd= preg_replace('[Голосуй:]', '', $usd);

    и получилось то что надо!
     
Статус темы:
Закрыта.