Помогите отладить скрипт

Статус
В этой теме нельзя размещать новые ответы.

Sergyk

Мой дом здесь!
Регистрация
1 Авг 2006
Сообщения
275
Реакции
370
Лежал у меня давно парсер гугла через прокси.
Сейчас решил использовать, но столкнулся с ошибками.
Помогите отладить плз.
PHP:
<?
ini_set('display_errors',1);
error_reporting(E_ALL);
if ($qs){
function parsergoogle($qs){
define("PROXY_FILE", "proxy.txt");
global $file;
$c=0;
while($c < count($qs))
{
$q=trim($qs[$c]);
print "$q<br>";
$q=urlencode($q);
$start=0;
while($start < 1000)
{
//check google
$result3="";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, "http://www.google.com/search?q=qwerty&hl=en&lr=&as_qdr=all&sa=N&filter=0");
curl_setopt($ch, CURLOPT_PROXY,$proxy);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)");
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com/");
curl_setopt($ch, CURLOPT_TIMEOUT,30);
$result3 = curl_exec($ch);
curl_close($ch);
if(substr_count($result3, "qwerty")>2)
{
$proxy="";
}
else
{
$proxy_list=file("proxy.txt");
$proxy=trim($proxy_list[rand(0, count($proxy_list))]);
}
//check google
while($start < 1000)
{
$result="";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, "http://www.google.com/search?q=$q&num=100&hl=en&lr=&as_qdr=all&start=$start&sa=N&filter=0");
curl_setopt($ch, CURLOPT_PROXY,$proxy);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)");
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com/");
curl_setopt($ch, CURLOPT_TIMEOUT,30);
$result = curl_exec($ch);
curl_close($ch);
//echo $result;
$result_a=explode("<h3 class='r'>", $result);
$result="";
$a=1;
//echo "COUNT:".count($result_a)."<br>";
while($a < count($result_a))
{
//echo $result_a[$a];
//echo "A:$a<br>";
preg_match_all('!<a href="(.*)" class=l!U', trim($result_a[$a]), $result1);
$link=trim($result1[1][0]);
if(count($result_a)<100 AND $a==count($result_a)-1)
{
$start="1000";
}
else
{
//echo $link."<br>";
$url=trim($link);
$file_out=fopen("$file","a");
fwrite($file_out,$url."\r\n"); 
fclose($file_out);
}
$a++;
}
if(count($result_a) < 2)
{
$start=1000;
}
$start=$start+100;
}
sleep(5);
$c++;
}
}
return($c);
}
$qs=explode("\r\n",$qs);
$a=parsergoogle ($qs);
$open = file($file); 
$result = array_unique ($open); 
unlink ("$file");
   foreach($result as $number) 
   { 
$file_out=fopen("$file","a");
fwrite($file_out,$number); 
fclose($file_out);
   } 
print "<center><a href=$file class=t_stats4>Скачать результат</a></center>";
}
else{
print '
Введите запросы.<br>
<form method="POST" action="">
	<p><textarea rows="21" name="qs" cols="28"></textarea></p>
	<p>Сохранить в файл: <input type="text" name="file" size="20"></p>
	<p><input type="submit" value="Chek" name="B1"></p>
</form>
';
}
?>
 
Если приведешь пример ошибки, не придется нанимать экстрасенса. На 99% я уверен что регулярное выражение составлено неправильно.
 
Или curl не установлен )
 
Или curl не установлен )
Curl установлен

curlcURL support enabled
cURL Information libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3

ощибки такие выдает
PHP:
Notice: Undefined variable: qs /class-google.php on line 4
Notice: Undefined variable: proxy in /class-google.php on line 40
Warning: file(1.txt) [function.file]: failed to open stream: No such file or directory in /class-google.php on line 147

Warning: array_unique() [function.array-unique]: The argument should be an array in /class-google.php on line 148

Warning: unlink(12.txt) [function.unlink]: No such file or directory in /class-google.php on line 149

Warning: Invalid argument supplied for foreach() in /class-google.php on line 150
 
афтар ты гонишь
первые две ошибки - тотисы ... грубо говоря их можно проигнорировать ( для начала )
ну а 3 и 5 - так там же написано что отсутствует файл или директория
у тебя global $file; либо не инициализируется либо инициализируется неверно
ну а остальные ошибки выскакивают из-за 3-4 ... - устранишь их устранятся и они
 
В правильном программировании:
Прежде чем открывать файл для чтения, нужно сначала удостовериться, что этот файл есть и доступен для чтения
PHP:
if (file_exists($file) && is_readable ($file)) {
$fp = fopen( $file, "r" ) or die ( "Не удалось открыть файл" );
fclose ($fp);
}
Тоже самое для записи
PHP:
if (file_exists($file) && is_writable ($file)) {
$fp = fopen( $file, "а" ) or die ( "Не удалось открыть файл" );
fclose ($fp);
}
Вот статья интересная на эту тему
 
add this at the top:

// Turn off all error reporting
error_reporting(0);

Добавлено через 2 минуты
# PHP error reporting. supported values are given below.
# 0 - Turn off all error reporting
# 1 - Running errors
# 2 - Running errors + notices
# 3 - All errors except notices and warnings
# 4 - All errors except notices
# 5 - All errors
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху