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

Статус
В этой теме нельзя размещать новые ответы.

jcrush

Гуру форума
Регистрация
10 Ноя 2006
Сообщения
688
Реакции
59
Добрый день, у меня есть отпарсенный текст, некоторые ссылки удалить получилось так:
Код:
$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

Подскажите как можно попроще убрать лишнее?
 
Если нужен только текст (без тэгов), то самое простое - strip_tags()
 
Создай папку 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($fs, html2txt($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
 
Получилось то что надо, вот только текст лишний
 
Получилось то что надо, вот только текст лишний
Убираем скрипты:
PHP:
<?php
$text = '<A href="/cinema/movies/details.asp?mid=2099596483" target=_blank><IMG src="/cinema/i/serv/lt_newwnd.gif" align="absmiddle" border="0" alt="Открыть в новом окне"></A> <A href="/cinema/movies/details.asp?mid=2099596483" 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';
$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text); 
$text = strip_tags($text);
echo $text;
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху