Тема: Seo Скрипты
Показать сообщение отдельно

  #12  
Старый 20.03.2008, 00:12
Solide Snake
Постоянный
Регистрация: 28.04.2007
Сообщений: 547
С нами: 10019906

Репутация: 3702


По умолчанию

Парсер Я.Каталога, Мини-сервис

Код:
function get_dir($link)
{
$html=file_get_contents($link);
$link=str_replace("http://yaca.yandex.ru","",$link);
$html=explode($link,$html);

for($i=0;$i<count($html);$i++)
 {
 $a=explode('"',$html[$i]);
 $out[]="http://yaca.yandex.ru".$link.$a[0];
 }
return $out;
}
function parser_yaca($link)
{
$html=file_get_contents($link);
if (eregi('a target="_blank" class="title" href=',$html))
 {
 $html=explode('a target="_blank" class="title" href="',$html);
 for ($i=1;$i<count($html);$i++)
  {
  $a=explode('"',$html[$i]);
  echo $a[0]."<br>";
  /*
  $file=fopen("yaca_out.txt","a");
  fputs($file,$a[0]."\r\n");
  fclose($file);
  */
  }
 }
}
Источник


Иногда бывает так что есть несколько сотен(тысяч) баз кейвордов
Нам же хочется получить одну и отсортированную

Первый скрипт производит склейку файлов

Создаем директорию in и туда кладем файлы для склейки:

Код:
<?

set_time_limit(0);

$c=0;

unset($f_array);
$f_array_c=0;

$d=opendir("in");
while(($e=readdir($d))!==false){
if($e=='.'||$e=='..')continue;
$f_array[$f_array_c]=$e;
$f_array_c=$f_array_c+1;
}
closedir($d);

print_r($f_array);

//$f_array=array(
//'1.txt',
//'2.txt',
//);


$wf=fopen("out.txt","a+");
for($x=0;$x<count($f_array);$x++){

$fname=$f_array[$x];

$ff=fopen("in/$fname","r");
while(!feof($ff)){
$str=trim(fgets($ff));

fwrite($wf,$str."\n");
$c=$c+1;
echo $c."\n";


}
fclose($ff);

}

fclose($wf); 

?>
Получаем файл out.txt состоящий их склеенных файлов

Второй скрипт сортирует на уникальные значения и по алфавиту
in.txt исходный файл
out.txt результат:

Код:
<?

set_time_limit(0);

echo "loading\n";
$fruits=file("in.txt");
echo "loaded\n";

echo "unique start\n";
$fruits=array_unique($fruits);
echo "unique stop\n";
echo "asort start\n";
asort($fruits);
echo "asort stop\n";
//$out='';
echo "writing\n";
$wf=fopen("out.txt","a+");
foreach ($fruits as $key => $val) {
//if(strlen($val)>15){
//$f=substr($val,0,7);
//if($f=='http://'){
fwrite($wf,trim($val)."\n"); 
//}
//$out=$out.trim($val)."\n"; 

//}
}
fclose($wf);

//$out=trim($out);

//$wf=fopen("out.txt","a+");
//fwrite($wf,$out."\n");
//fclose($wf);

echo "done\n";

?>
(c) tname

Последний раз редактировалось Solide Snake; 20.03.2008 в 00:14..
 
Ответить с цитированием