Напишите парсер

1.57K
.
http://seclub.org/forum/posts/154131/ тема с секлаба
.
Файл теперь стал недоступен. Пишет сервер не найден
.
Привет всем: помогите написать парсер у меня не получается вот код
////настройки//////
$ot=8; //ID страницы с которой парсим
$do=15; //ID страницы до которой парсим
$site='http://wap4u.ru/anek/index.php?url=&fon=FFFFFF&txt=76625B&stxt=9E8379&module=read&cid=1&page='; //адрес форума
////////////////////
$i=0;
for($bn=$ot;$bn<$do;$bn++)
{
$file=file_get_contents(''.$site.''.$bn.'');
preg_match_all('#<hr/>([0-9]{2})\.([0-9]{2})., ([0-9]{2})\[0-9]{2})<br/>(.*)<br/>&nbsp;<br/>#Uis',$file,$data);
//var_dump($ggg);
foreach($data[0] as $data2)
	{
$data2=preg_replace('#<hr/>([0-9]{2})\.([0-9]{2})\., ([0-9]{2})\[0-9]{2})<br/>#','',$data2);
$data2=str_replace('<br/>&nbsp;<br/>',' ',$data2);
$data2=str_replace('<br/>',' ',$data2);
$data2=str_replace('<br />',' ',$data2);
$data2=str_replace('&quot;',' ',$data2);
$data2=str_replace('&lt;',' ',$data2);
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `anekdoti` WHERE `text` = '$data2'"),0) > 0)	{
		$sql = mysql_fetch_assoc(mysql_query("SELECT * FROM `anekdoti` WHERE `text` = '$data2'"));
		echo'<div class="menu">Цитата номер '.Anti_Xak::num($sql['id']).' уже существует </div>';
	
	}else{
		
		$time = time();
		mysql_query("INSERT INTO `bash` SET `text`='$data2',`time`='$time'");
		echo '<div class="menu">Цитата номер '.mysql_insert_id().' добавлена</div>';
		$i++;
		}
	}
}
.
(\/)____o_O____(\/)
Saniok, file=file_get_contents(''.$site.''.$bn.'');
конкатенация переменных ($site . $bn)
ты сам писал это? мощно выбрать все в preg_match_all в потом через цикл каждый элемент массива обработать регуляркой, велосипед прям
.
(\/)____o_O____(\/)
Saniok, в str_replace в первый аргумент передаем массив всех нужных замен, второй элемент пустой, получится все за один раз поменять
.
Koenig (18.05.2012/10:34)
Saniok, file=file_get_contents(''.$site.''.$bn.'');
конкатенация переменных ($site . $bn)
ты сам писал это? мощно выбрать все в preg_match_all в потом через цикл каждый элемент массива обработать р
Я гдето откопал код(непомню где) и решил попробовать зделать...
.
Koenig, А поподробней можно?
.
(\/)____o_O____(\/)
Saniok, проще новый написать, с компа буду. гляну
.
(\/)____o_O____(\/)
Saniok, массив полученный записывай в базу по одному элементу на запись
mb_internal_encoding('utf-8');
header('Content-Type: text/html; charset=utf-8');

$arr_ank = array();

for($p=0;$p<62;$p++) {
preg_match_all('|</b><br/>(.*)<hr/><br/>|s', file_get_contents('http://wap4u.ru/anek/index.php?module=read&cid=1&page=' . $p), $data);
$ank = explode('<hr/>', $data[1][0]);
foreach ($ank as $v) {
$arr_ank[] = trim(str_replace('<br/>', PHP_EOL, preg_replace('#([0-9]*.[0-9]*., [0-9]*:[0-9]*)#', '', $v)));    
}
}

echo '<pre>';
print_r($arr_ank);
.
(\/)____o_O____(\/)
307 анекдотов
Всего: 90