Форум: "Прочее";
Текущий архив: 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