Калдата бот

slideR

Registered
Здравейте. Трябва ми бот, който да взима новините от калдата. Нещо подобно на http://www . base-bg . info/news.php (не е реклама) Мерси предварително
 
Код:
function rss($link,$source,$encode){
$content = file_get_contents("$link");
$explode = explode("<item>","$content");
foreach($explode as $part){
$part = explode("</item>","$part");
$part = $part['0'];
$title = explode("<title>","$part");
$title = explode("</title>","$title[1]");
$title = $title['0'];
if(!preg_match("/kaldata/i","$title")){
$content = explode("</description>","$part");
$content = explode("<description>","$content[0]");
$content = $content['1'];
$title = trim(addslashes(htmlspecialchars($title)));
$content = trim(addslashes(htmlspecialchars($content)));
if("$encode" == "yes"){
$title = iconv("utf-8","windows-1251","$title");
$content = iconv("utf-8","windows-1251","$content");

}
$query = mysql_query("SELECT * FROM news WHERE title = '$title'");
if(mysql_num_rows($query) == 0){
    $none = base_decode("UlNTIENvZGUgYnkgPGEgaHJlZj1odHRwOi8vYmFzZS1iZy5pbmZvLz5CQVNFLUJnPC9hPg==");
$content = "$content$none";
    mysql_query("INSERT INTO news (`title`,`text`,`source`) VALUES ('$title','$content','$source')") or die(mysql_eror());
}
}
}
}

rss("http://www.kaldata.com/rosebud/rss.php?catid=3","http://www.kaldata.com/","no");

sql.sql
Код:
CREATE TABLE IF NOT EXISTS `news`(
`id` INT NOT NULL AUTO_INCREMENT,
`title` TEXT COLLATE utf8_unicode_ci NOT NULL,
`text` TEXT COLLATE utf8_unicode_ci NOT NULL,
`source` TEXT COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY(`id`)
) ENGINE = MyISAM DEFAULT CHARSET utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT = 1;

Директно от източника (въпросният сайт (BASE)) е мой :)
 
THC каза:
Код:
function rss($link,$source,$encode){
$content = file_get_contents("$link");
$explode = explode("<item>","$content");
foreach($explode as $part){
$part = explode("</item>","$part");
$part = $part['0'];
$title = explode("<title>","$part");
$title = explode("</title>","$title[1]");
$title = $title['0'];
if(!preg_match("/kaldata/i","$title")){
$content = explode("</description>","$part");
$content = explode("<description>","$content[0]");
$content = $content['1'];
$title = trim(addslashes(htmlspecialchars($title)));
$content = trim(addslashes(htmlspecialchars($content)));
if("$encode" == "yes"){
$title = iconv("utf-8","windows-1251","$title");
$content = iconv("utf-8","windows-1251","$content");

}
$query = mysql_query("SELECT * FROM news WHERE title = '$title'");
if(mysql_num_rows($query) == 0){
    $none = base_decode("UlNTIENvZGUgYnkgPGEgaHJlZj1odHRwOi8vYmFzZS1iZy5pbmZvLz5CQVNFLUJnPC9hPg==");
$content = "$content$none";
    mysql_query("INSERT INTO news (`title`,`text`,`source`) VALUES ('$title','$content','$source')") or die(mysql_eror());
}
}
}
}

rss("http://www.kaldata.com/rosebud/rss.php?catid=3","http://www.kaldata.com/","no");

sql.sql
Код:
CREATE TABLE IF NOT EXISTS `news`(
`id` INT NOT NULL AUTO_INCREMENT,
`title` TEXT COLLATE utf8_unicode_ci NOT NULL,
`text` TEXT COLLATE utf8_unicode_ci NOT NULL,
`source` TEXT COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY(`id`)
) ENGINE = MyISAM DEFAULT CHARSET utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT = 1;

Директно от източника (въпросният сайт (BASE)) е мой :)
Не става само рекламата на base излиза ... Даже и името не е правилно
 
опитай отново, че махнах някои неща, които биха ти пречили
 
Код:
<?php
function rss($link,$source,$encode){
$content = file_get_contents("$link");
$explode = explode("<item>","$content");
foreach($explode as $part){
$part = explode("</item>","$part");
$part = $part['0'];
$title = explode("<title>","$part");
$title = explode("</title>","$title[1]");
$title = $title['0'];
if(!preg_match("/kaldata/i","$title")){
$content = explode("</description>","$part");
$content = explode("<description>","$content[0]");
$content = $content['1'];
$title = trim(addslashes(htmlspecialchars($title)));
$content = trim(addslashes(htmlspecialchars($content)));
if("$encode" == "yes"){
$title = iconv("utf-8","windows-1251","$title");
$content = iconv("utf-8","windows-1251","$content");

}
$query = mysql_query("SELECT * FROM news WHERE title = '$title'");
if(mysql_num_rows($query) == 0){
    mysql_query("INSERT INTO news (`title`,`text`,`source`) VALUES ('$title','$content','$source')") or die(mysql_eror());
}
}
}
}

rss("http://www.kaldata.com/rosebud/rss.php?catid=3","http://www.kaldata.com/","no");
?>
+ импортиране на sql кода, който съм ти го дал по-горе в база данни
трябва да настроиш и връзка с база данни, все пак...
 
Интересно, при мен как работи ?
Дай кода да видим, какво си направил точно...
Не прави ли записи в базата данни ?
защото този бот само това прави
 
Прави записи, но записва глупасти
пример
1 Apple http://www.kaldata.com/
2 Nokia Siemens Networks http://www.kaldata.com/
3 Google http://www.kaldata.com/
4 Canonical http://www.kaldata.com/
5 Sophos http://www.kaldata.com/
6 Gartner: http://www.kaldata.com/
7 Microsoft <div style="float:right;padding-left:2px;padding-bottom:2px;"><object width="250" height="170"><param name="movie" value="http://www.youtube.com/v/tWu23sae3Zc&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/tWu23sae3Zc&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="250" height="170"></embed></object></div>Microsoft http://www.kaldata.com/
8 MeeGo http://www.kaldata.com/
9 SAP http://www.kaldata.com/
10 Facebook http://www.kaldata.com/
11 Hewlett-Packard http://www.kaldata.com/
12 Firefox http://www.kaldata.com/
13 MSN UK Microsoft http://www.kaldata.com/
14 Google Chrome OS http://www.kaldata.com/
15 Adobe Adobe Systems http://www.kaldata.com/
16 Samsung http://www.kaldata.com/
Ето това записва .....
Ето кода. Той е вклучен в клас
class page {
public function rss($link,$source,$encode){
$content = file_get_contents($link);
$explode = explode("<item>",$content);
foreach($explode as $part){
$part = explode("</item>",$part);
$part = $part['0'];
$title = explode("<title>",$part);
$title = explode("</title>",$title[1]);
$title = $title['0'];
if(!preg_match("/kaldata/i",$title)){
$content = explode("</description>",$part);
$content = explode("<description>",$content[0]);
$content = $content['1'];
$title = trim(addslashes(htmlspecialchars($title)));
$content = trim(addslashes(htmlspecialchars($content)));
if($encode == "yes"){
$title = iconv("utf-8","windows-1251",$title);
$content = iconv("utf-8","windows-1251",$content);

}
$query = mysql_query("SELECT * FROM news WHERE title = '$title'");
if(mysql_num_rows($query) == 0){
mysql_query("INSERT INTO news (`title`,`text`,`source`) VALUES ('$title','$content','$source')") or die(mysql_eror());
}
}
}
}
}
Тава правя само и като го извеждам
echo $page->rss("http://www.kaldata.com/rosebud/rss.php?catid=3","http://www.kaldata.com/","no");
 
Проблемът е някъде при теб, защото ти копирам кода точно от файла на бота на base.
Опитай в самостоятелен файл, без да го включваш в класове и т.н.
 
Дай ми линк точно от къде искаш да взимам новините смисъл в kaldata има доста страници с новини.. покаже точно от къде ..
 
Най-сетне го написах
<?php header("Content-type: text/html; charset=cp1251");
$xml = file_get_contents("http://www.kaldata.com/rosebud/rss.php?catid=3");
$explode = explode("<item>","$xml");
foreach($explode as $part){
$part = explode("</item>","$part");
$part = $part['0'];
$title = explode("<title>","$part");
$title = explode("</title>","$title[1]");
$title = $title['0'];
$text = explode("<description>", $part);
$text = explode("</description>", $text[1]);
$text = $text['0'];
echo $title.'<br>'.$text.'<hr>';
}
?>
+1 за TNH даде ми идеята и се мъчи да ми помогне. Мерси
 

Back
Горе