alex-bot
Nulled-Man
- Регистрация
- 4 Май 2007
- Сообщения
- 496
- Реакции
- 161
- Автор темы
- #1
Народ помогите плиз доделать скрипт очистки текста от мусора и лишних символов
За основу взял скрипт грабера:
Сам скрипт я почти не трогал нужно добавить регулярку которая бы удаляла все слова, если в них встречаются буквы английского алфавита...
В принципе тема такая уже была и там SolutionFix выложил такой скрипт, но у меня он не пошел вот его вариант:
На его скрипте у меня вылетает я не спец, может сразу скажете в чем тут дело, единственное что руки не дошли потестить именно на хостинге. А на локалке не работает... Хотя вроде все просто...
Fatal error: Call to undefined function: file_put_contents() in z:\home\localhost\www\textgrab\444.php on line 16
За основу взял скрипт грабера:
PHP:
<?php
Header("Content-Type: text/html; charset=windows-1251");
set_time_limit(0);
ob_implicit_flush();
//------------------------------------------------
$in = fopen('in.txt', 'r');
$out = fopen('out.txt', 'w');
$content = fgets($in, 4096);
$text = CleanText($content);
while(!feof($in)){
$content = fgets($in, 4096);
$text = perenos($content);
$text = CleanText($content);
fputs($out, $text);
}
fclose($out);
fclose($in);
echo "Текст обработан $out";
//------------------------------ удаление переносов
function perenos($content)
{
$text = $content;
$text = preg_replace('/-\s{2,}/s', '', $text);
//echo preg_replace('/-\s{2,}/s', '', $text);
return $text;
}
//------------------------------
function CleanText($content) //ooieoc? iadrainec nndricou
{
$text = $content;
$text = preg_replace('/-\s{2,}/s', '', $text);
$text = preg_replace("/<title>\s*(.*?)\s*<\/title>/is"," ",$text);
$text = preg_replace("/<!--.*?-->/s"," ",$text);
$text = preg_replace("/<[Ss][Cc][Rr][Ii][Pp][Tt].*?<\/[Ss][Cc][Rr][Ii][Pp][Tt]>/s"," ",$text);
$text = preg_replace("/<[Ss][Tt][Yy][Ll][Ee].*?<\/[Ss][Tt][Yy][Ll][Ee]>/s"," ",$text);
$text = preg_replace("/<[^>]*>/s"," ",$text);
$style='/\<style[\w\W]*?\<\/style\>/i';
$script = '/\<script[\w\W]*?\<\/script\>/i';
$doc = '/\<!doctype[\w\W]*?\>/i';
$text = preg_replace($doc, ' ', $text);
$text = preg_replace($style, ' ', $text);
$text = eregi_replace(' style="[^">]*"', ' ', $text);
$text = strip_tags($text);
$text = preg_replace($script, ' ', $text);
$text = str_replace(" ", ' ', $text);
$text = preg_replace ("/[\s,]+/", ' ', $text);
$text = str_replace("...", ".", $text);
$text = str_replace("..", ".", $text);
$text = str_replace("!!!", "!", $text);
$text = str_replace("!!", "!", $text);
$text = str_replace("???", "?", $text);
$text = str_replace("??", "?", $text);
$text = str_replace('»', '"', $text);
$text = str_replace('«', '"', $text);
$text = str_replace(".", ".\r\n", $text);
$text = str_replace("!", ".\r\n", $text);
$text = str_replace("?", ".\r\n", $text);
$text = str_replace("|", ".\r\n", $text);
$text = str_replace(".\r\n.\r\n", ".\r\n", $text);
$text = str_replace(".\r\n.\r\n", ".\r\n", $text);
$text = str_replace(". \r\n", ".\r\n", $text);
$text = str_replace("\r\n\r\n", "\r\n", $text);
$text = str_replace("\r\n\r\n", "\r\n", $text);
$text = str_replace("\t\t", " ", $text);
$text = str_replace("\t", " ", $text);
$text = str_replace(" ", " ", $text);
$text = str_replace(" ", " ", $text);
$text = str_replace(" .", ".", $text);
$text = str_replace(" ,", ",", $text);
$text = str_replace("- - - ", "- ", $text);
$text = str_replace("- - ", "- ", $text);
$text = str_replace("---", "-", $text);
$text = str_replace("--", "-", $text);
$text = str_replace("--", "-", $text);
$text = str_replace("_", " ", $text);
$text = str_replace(" ", " ", $text);
$text = str_replace(" ", " ", $text);
$text = str_replace("--", "-", $text);
$text = str_replace("--", "-", $text);
$text = str_replace("***", "*", $text);
$text = str_replace("**", "*", $text);
$text = str_replace("\r\n?", "\r\n", $text);
$text = str_replace("\r\n(", "\r\n", $text);
$text = str_replace("\r\n)", "\r\n", $text);
$text = str_replace("\r\n'", "\r\n", $text);
$text = str_replace("\r\n-", "\r\n", $text);
$text = str_replace("\r\n*", "\r\n", $text);
$text = str_replace("\r\n?", "\r\n", $text);
$text = str_replace("\r\n-", "\r\n", $text);
$text = str_replace("\r\n ", "\r\n", $text);
$text = str_replace("<", "", $text);
$text = str_replace(">", "", $text);
return $text;
}
//------------------------------------------------
?>
В принципе тема такая уже была и там SolutionFix выложил такой скрипт, но у меня он не пошел вот его вариант:
PHP:
<?php
$SourceFile = 'source.txt';
$DestinFile = 'destin.txt';
function IsGoodWord($Word)
{
for($i=0; $i<strlen($Word); $i++)
if(($Word[$i] < 'а') or ($Word[$i] > 'я')) return false;
return true;
}
if(!$SourceText = file_get_contents($SourceFile)) exit("Ошибка: нет файла $SourceFile с исходным текстом");
$DestinText = '';
foreach(($Words = explode(" ", $SourceText)) as $Word)
if(IsGoodWord($Word)) $DestinText .= "$Word ";
if(!file_put_contents($DestinFile, $DestinText)) exit("Ошибка: нет удалось записать файл $DestinFile с полученным текстом");
echo "Успешно очищено, результаты смотрите в файле $DestinFile";
?>
Fatal error: Call to undefined function: file_put_contents() in z:\home\localhost\www\textgrab\444.php on line 16