Главная страница
    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.061 c
2-1201628602
NeiL
2008-01-29 20:43
2008.02.24
Выбрать RadioButton


15-1200763466
мойипизвестен
2008-01-19 20:24
2008.02.24
А что будет если...


15-1200675097
Lip
2008-01-18 19:51
2008.02.24
Переменная в процедуре .. живучая


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


15-1200137908
antonn
2008-01-12 14:38
2008.02.24
Помогите с тестом





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский