<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
header('Content-Type: text/html; charset=UTF-8');
include_once('functions_url.php');
include_once('functions.php');
require_once('config.php');
set_time_limit(0);
//////////////////////////////////////////////
function banned_words($string){
$words = file('bad_words.txt');
foreach($words as $word){
// обезопаснивание слова дл¤ регул¤рки
$find = array('\\', '^', '$', '(', ')', '<', '[', '{', '|', '>', '.', '*', '+', '?', '/');
$replace = array('\\\\', '\^', '\$', '\(', '\)', '\<', '\[', '\{', '\|', '\>', '\.', '\*', '\+', '\?', '\/');
$word = str_replace($find, $replace, $word);
$word = trim($word);
// слово целиком (точное), т.е. „»—“ќ слово из списка (без префиксов и суффиксов)
//if(!empty($word) and preg_match('/\W'.$word.'\W/Uism', $string)) return true;
// вообще вхождение (неточное), т.е. crackZ, crackS и т.п.
//if(!empty($word) and preg_match('/'.$word.'/Uism', $string)) return true;
if(!empty($word) and preg_match('/'.$word.'/i', $string)) return true;
}
return false;
} //end of function
///////////////////////////////////////////////////////////////////////////
//---------цикл по файлам---------------------------
foreach (glob("input/*.txt") as $file) {
while (1>0) {
$bk=filesize($file);
if($bk==0) {
//var_dump($bk);
break; //если в файле закончились кеи, переходим к другому
}
$k1=getLastStr($file,true,1); //берем строку с кеем из текущего файла
if(empty($k1)) break;
$k1 = trim($k1);
if(!banned_words($k1)) { //если слова нет в "банном списке" (файл bad_words.txt), то добавляем его в базу
$k2=mb_ucfirst($k1);
$slovo=$k1;
//Получаем картинки
if($engine=='bing') preg_match_all('!(?<=murl":").*?(?=")!siu', get_image_bing($slovo), $kartinushki);
if($engine=='yandex') {
preg_match_all('!(?<=img_url=).*?(?=&)!siu', get_image_yandex($slovo), $kartinushki);
for($c=0;$c<count($kartinushki[0]);$c++) $kartinushki[0][$c]=urldecode($kartinushki[0][$c]);
}
//Получаем заголовки и описания из Бинга по нашему кею
$aa=get_rss_bing($slovo);
//var_dump($aa);
preg_match_all('/(?<=<item><title>).*?(?=<)/', $aa, $titles);
preg_match_all('/(?<=<description>).*?(?=<)/', $aa, $descriptions);
preg_match_all('/(?<=<link>).*?(?=<)/', $aa, $urls1);
unset($descriptions[0][0]);
$urls2=array_slice($urls1[0],2);
$urls2 = @array_unique($urls2);
$big='';
$ii=0;
foreach($urls2 as $url) {
if(!banned_words($url)){
if($ii>$howmany) break;
//echo $url;
$con=_get_url_new($url);
//echo $con;
$big.=$con; //набираем тексты с сайтов в один большой текст
$ii++;
}
}
//var_dump($big);
//echo '<hr>';
if(empty($kartinushki[0][0])) continue; //если по кею нет картинки, пропускаем этот кей
/////////Формируем короткую новость
$pred='<img src="'.$kartinushki[0][0].'" alt="'.$titles[0][0].'" class="kart1"><br>';
if(!empty($descriptions[0][1])) {
$pred.=ochist($descriptions[0][1]).'.';
}
////////Формируем полную новость
$full='';
$full=$big; // кладем в полную новость спаршенный текст
$kolvo=mt_rand($minimages,$maximages); $vsego=count($kartinushki[0]); if($kolvo>$vsego) $kolvo=$vsego;
if(!empty($vsego)) {
for($i=0;$i<$kolvo;$i++) {
$imgurl=$kartinushki[0][$i];
if(!empty($imgurl)) {
if(isset($titles[0][$i])) { $alt=ochist($titles[0][$i]); } else $alt='';
if(isset($descriptions[0][$i])) { $desc=ochist($descriptions[0][$i]); } else $desc='';
$full.='<img src="'.$imgurl.'" alt="'.$alt.'" class="kart2"><br>';
$full.=$alt.'.<br>';
}
}
}
$full.=(youtube($slovo)); //вставляем ролик из youtube по текущему кею
if($hyperpoisk==1&&$zapret==0) {
$full.='<div class="clearfix"></div>';
$full.='<div style="padding: 10px;">Тэги:';
$mass=array_unique($titles[0]);
foreach($mass as $tit) {
$tit=ochist($tit);
if(!empty($tit)&&!banned_words($tit)) {
//$full.='<a href="/?'.$poisk.'='.urlencode($tit).'">'.$tit.'</a>,';
$full.=$tit.', ';
}
}
$full.='</div>';
}
//////////////////////////////////////////////////////////////////////////
if($gug==1) $prefix=mt_rand(1111111,9999999).'-';
else $prefix='';
$url1=$prefix.translit($k1).'.html';
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//записываем
//////////////////////////////////////////////////////
//вариант 1 не работает
$dir = dir ("full/");
while (false !== ($entry = $dir->read()))
{
if (preg_match("/[0-9].php/", $entry))
{
$nums[] = str_replace (".php", "", $entry);
}
}
if (!isset($nums))
{
$num_id = 1;
}
else
{
sort ($nums);
$num_id = $nums[count($nums)-1] + 1;
}
$content = "<?\r\n\$page_title = '" . $k2. "';\r\n" .
"\$page_h1 = '" . $k2 . "';\r\n" .
"\$page_descr = '" . $k2 . "';\r\n" .
"\$page_keyws = '" . $k2 . "';\r\n" .
"\$page_4menu = '" . $k2 . "';\r\n\r\n" .
"\$content = <<< EOT\r\n" . $full . "\r\n" .
"EOT;\r\n\r\n?>";
if (!function_exists('file_put_contents'))
{
function file_put_contents ($filename, $content)
{
if ($fp = @fopen($filename, 'w'))
{
$result = fwrite($fp, $content);
fclose ($fp);
return $result;
}
else
{
return false;
}
}
}
if (!file_put_contents("full/" . $num_id . ".php", $content,FILE_APPEND )) //отдельный файл статьи
{
die ("Ошибка записи");
}
else
{
file_put_contents('data/blog.dat', $num_id.'|||||'.$date.'|||||'.$url1.'|||||'.$k2.'|||||'.$pred."\r\n",FILE_APPEND );// файл меню
}
//вариант 2 работает
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// вычисляем номер последней записи_full
$file_full = file("data/full.dat");
$max_full = 0;
foreach( $file_full as $line)
{
if ( !empty($line) )
{
$elem = explode("|||||",$line);
if ( $elem[0] > $max_full) $max_full = $elem[0];
}
}
$max_full++;
////////////////////////////////////////////////////////////////
// вычисляем номер последней записи_blog
$file_blog = file("data/blog.dat");
$max_blog = 0;
foreach( $file_blog as $lines)
{
if ( !empty($lines) )
{
$elems = explode("|||||",$lines);
if ( $elems[0] > $max_blog) $max_blog = $elems[0];
}
}
$max_blog++;
$month = array('1' => 'января','2' => 'февраля','3' => 'марта','4' => 'апреля','5' => 'мая','6' => 'июня','7' => 'июля','8' => 'августа','9' => 'сентября','10' => 'октября','11' => 'ноября','12' => 'декабря');
$date=date("d {$month[date('n')]} Y, в H:i");
//////////////////////////////
file_put_contents('data/full.dat', $max_full.'|||||'.$d.'|||||'.$full."\r\n",FILE_APPEND | LOCK_EX);// файл статьи
file_put_contents('data/blog.dat', $max_blog.'|||||'.$d.'|||||'.$url1.'|||||'.$k2.'|||||'.$pred."\r\n",FILE_APPEND | LOCK_EX);// файл меню
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
}
echo $file.' - OK<br>';
}
echo ('<br>The END!');
?>