Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Вниз

граббер в php   Найти похожие ветки 

 
Evanescence   (2008-01-18 16:49) [0]

граблю с сайта, тамошний скрипт берет GET переменную и выдает результат, мой скрипт должен сохранить этот результат в мою базу. Значение переменной мой скрипт читает из файла. Если в этом файл только одна строка, то все нормально работает. Если больше - то выполнение скрипта длится на неопределенное время, а Apache занимает половину времени проца, но на базу ничего не добавляет. Надеюсь, обьяснил доходчиво... :)


 
Evanescence   (2008-01-18 16:50) [1]

<?
$lat=file("lat.txt");
$cyr=file("cyr.txt");
$source = file("123.txt");

$lat=explode("|",$lat[0]);
$cyr=explode("|",$cyr[0]);
mysql_pconnect("localhost","root","");
mysql_select_db("trans");

function lc($str){
global $lat, $cyr;
for ($i=0;$i<=41;$i++) $str=str_replace($lat[$i],$cyr[$i],$str);
return $str;
}

function cl($str){
global $lat, $cyr;
for ($i=0;$i<=41;$i++) $str=str_replace($cyr[$i],$lat[$i],$str);
return $str;
}

function translateword($word){
$cnt = "";
$tmp = "";
$host = "www.host.kz";
$path = "/index.php";
if (isset($word)) {
$word = strtolower(cl(urldecode($word)));
$path .= "?word=$word";
$fp = fsockopen($host,80,$errno,$errstr,30);
   if($fp){
 $headers = "GET $path HTTP/1.0\r\n";
 $headers .= "Host: $host\r\n";
 $headers .= "Accept: *\r\n";
 $headers .="Accept-Charset: utf-8\r\n";  // <<====
 $headers .= "Accept-Charset: *\r\n";
 $headers .= "Accept-Encoding: deflate\r\n";
 $headers .= "Accept-Language: ru\r\n";
 $headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01\r\n\r\n";
 fwrite($fp,$headers);
 $text = "";
 while($text != "\r\n") $text = fgets($fp,128);
 while(!feof($fp)) $text .= fgets($fp,4096);
 fclose($fp);
}
$b = $text;
$b = explode("</p>",$b);
$b = $b[0];
$b = explode("<br/>",$b);
$cnt .= "".lc($word).":<br>";
if ($b[2]=="word $word") {$cnt .= "<ul><li>Soz tabilmadi</li></ul>";}
else {
 $cnt .= "<ul>";
       foreach($b as $i => $value) if ($i>1) {
  $cnt .= "<li>".lc($value)."</li>";
  $tmp .= $value."<br>";
  }
 $cnt .= "</ul>";
 if (add_to_base($word,$tmp)==1) $cnt .="ok<br>" ;
 }
}
return $cnt;
}

function add_to_base($soz,$tran){
$soz = lc($soz);
$result = mysql_query("SELECT id FROM trans WHERE soz="$soz"");
if (mysql_numrows($result)==0)
   {
$tran = str_replace("<бр>","<br>",lc($tran));
$result = mysql_query("INSERT INTO `trans` VALUES(NULL, "$soz","$tran")");
if (mysql_numrows($result)>0) $s=1; else $s=0;
return $s;
}
}

foreach($source as $uu => $bb)
{
echo translateword($bb);
}

?>


 
ketmar ©   (2008-01-18 17:57) [2]

Delphi не смогла скомпилировать.


 
_xxx_   (2008-01-18 18:00) [3]

$lat=explode("|",$lat[0]);
$cyr=explode("|",$cyr[0]);

лучше заменить на
$lat=explode("|",trim($lat[0]));
$cyr=explode("|",trim($cyr[0]));

ибо, в случае многострочного файла, $lat[0] и $cyr[0] последними символами будут иметь знаки переноса (\r\n), соответственно эти символы вернет функция lc(). Дальше разбираться не стал, но возможно в этом причина.


 
_xxx_   (2008-01-18 18:04) [4]

и здесь тоже кстати
echo translateword(trim($bb));


 
Evanescence   (2008-01-18 18:08) [5]

> echo translateword(trim($bb));

спасибо большое, это помогло )))


 
Anatoly Podgoretsky ©   (2008-01-19 23:38) [6]

> Evanescence  (18.01.2008 16:49:00)  [0]

> Надеюсь, обьяснил доходчиво... :)

Очень, пошел за поллитрой.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
15-1200454736
ply
2008-01-16 06:38
2008.02.24
MySQL компонент


15-1200657798
Lip
2008-01-18 15:03
2008.02.24
Как на агнлийском будет


2-1201541016
Inslave
2008-01-28 20:23
2008.02.24
Ini + checbox


2-1201868796
Danco
2008-02-01 15:26
2008.02.24
форма


8-1173158554
OlegM
2007-03-06 08:22
2008.02.24
Склеить несколько WAV в один





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский