#1 - 4 ноября 2009, среда
|
Посетитель
Сообщений: 90
4778 дней назад
|
0
Я тут одну штуку надоумел сначала хотел написать только в личку админу, но потом подумал может это кому небудь ещё будет полезно. Вобщем это скрипт создан для получение новостей с Google News по поиску через RSS, с последующим добавление на сайт. Скрипт постарался хорошо прокомментировать. Код PHP: <?php // Содинение с MySQL /* * Не забудьте исправить параметры хоста, рута и имя db. */ if ($dbcnx) { } // URL rss на новости $rss = 'http://news.google.com/news?q=%D1%8F%D0%BA%D1%83%D1%82%D0%B8%D1%8F&output=rss'; if ( $xml===false ) die('Ошибка парсера, URL: '.$rss); foreach ( $xml->xpath('//item') as $item ) { /* * Дальше вместо name_table нужно вписать название таблици(если есть префикс, то его писать тоже. * Вместо field,field, field вписать название полей например: id, title_news, description_news и т.д. * '$item->title', '$item->link', '$item->ldescription', 'Новостной бот' - это переменные(значениче) в которых хранятся заголовки, описание, линки и прочие. * * ВНИМАНИЕ! Если первое поле называется например title то значение нужно выстовлять $item->title итак строго по порядку. * * ПРИМЕР * mysql_query("INSERT INTO `news` (title, link, description, user) * VALUES ('$item->title', '$item->link', '$item->ldescription', 'Новостной бот')"); * * ПРИМЕЧАНИЕ * Не забудьте выставить имя пользователя. * Подробно о RSS можно почитать на http://ru.wikipedia.org/wiki/Rss * Для Google News соответствует версия 2.0 */ mysql_query("INSERT INTO `name_table` (field,field, field) VALUES ('$item->title', '$item->link', '$item->description', 'Новостной бот')") or die("Запись не добавлена"); } ?>
Запускать в браузере или по SSH. Если будут вопросы по настройке таблице, спрашивайте. UPD: Парсит он по слову "Якутия".
Редактировалось: 4 раза (Последний: 6 ноября 2009 в 03:08)
|
#2 - 5 ноября 2009, четверг
|
Посетитель
Сообщений: 90
4778 дней назад
|
0
Дописал скрипт для этого сайта: SQL дамп: Код PHP:-- phpMyAdmin SQL Dump -- version 3.1.3.1 -- http://www.phpmyadmin.net -- -- Хост: localhost -- Время создания: Ноя 04 2009 г., 20:07 -- Версия сервера: 5.1.33 -- Версия PHP: 5.2.9 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- База данных: `news_aykhal` -- -- -------------------------------------------------------- -- -- Структура таблицы `news_aykhal` -- CREATE TABLE IF NOT EXISTS `news_aykhal` ( `id` int(255) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `des` text NOT NULL, ` date` varchar (255) NOT NULL, ` link` varchar (255) NOT NULL,) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Дамп данных таблицы `news_aykhal` --
Парсер новостей: Код PHP:<?php // Содинение с MySQL /* * Не забудьте исправить параметры хоста, рута и имя db. */ if ($dbcnx) { } // URL rss на новости $rss = 'http://news.google.com/news?q=%D1%8F%D0%BA%D1%83%D1%82%D0%B8%D1%8F&output=rss'; if ( $xml===false ) die('Ошибка парсера, URL: '.$rss); foreach ( $xml->xpath('//item') as $item ) { /* * Дальше вместо name_table нужно вписать название таблици(если есть префикс, то его писать тоже. * Вместо field,field, field вписать название полей например: id, title_news, description_news и т.д. * '$item->title', '$item->link', '$item->ldescription', 'Новостной бот' - это переменные(значениче) в которых хранятся заголовки, описание, линки и прочие. * * ВНИМАНИЕ! Если первое поле называется например title то значение нужно выстовлять $item->title итак строго по порядку. * * ПРИМЕР * mysql_query("INSERT INTO `news` (title, link, description, user) * VALUES ('$item->title', '$item->link', '$item->ldescription', 'Новостной бот')"); * * ПРИМЕЧАНИЕ * Не забудьте выставить имя пользователя. * Подробно о RSS можно почитать на http://ru.wikipedia.org/wiki/Rss * Для Google News соответствует версия 2.0 */ mysql_query("INSERT INTO `news_aykhal` (title, des, date, link) VALUES ('$item->title', '$item->description', '$item->pubDate', '$item->link')") or die("Запись не добавлена"); } ?>
API для новостей: Код PHP:<?php // Содинение с MySQL /* * Не забудьте исправить параметры хоста, рута и имя db. */ if ($dbcnx) { } // Выводим последнии 10 новостей. // Вместо тегов <pre> можно вставить свои. $sql = mysql_query("SELECT * FROM `news_aykhal` ORDER BY id DESC LIMIT 10"); do { echo '<pre>'.$row['title'].'</pre>'; echo '<pre>'.$row['des'].'</pre>'; echo '<pre>'.$row['date'].'</pre>'; echo '<pre>'.$row['link'].'</pre>'; ?>
Редактировалось: 2 раза (Последний: 5 ноября 2009 в 02:49)
|
#3 - 5 ноября 2009, четверг
|
Посетитель
Сообщений: 90
4778 дней назад
|
0
Для простоты добавления новостей на сайт можно использовать тег IFRAME ( http://www.htmlbook.ru/html/iframe.html ). В нём подключать естественно api новостей.
|
#4 - 26 марта 2015, четверг
|
Администратор
Сообщений: 1468
Айхал
23 дня назад
|
0
Вот как настоящий отец, забыл когда день рождения у моего детища))) 2008-03-13 дата регистрации нашего сайта!  нам уже восьмой годик пошел))
|
#5 - 26 марта 2015, четверг
|
Посетитель
Сообщений: 122
Айхал
2785 дней назад
|
0
Кравцов Лука, а почему я тогда помню дату именно 26го марта?)) Просто я запомнил её потому что в этот день двое моих знакомых родились))
Если ты дважды подумаешь, прежде чем один раз сказать, ты скажешь вдвое лучше.
|
#6 - 26 марта 2015, четверг
|
Администратор
Сообщений: 1468
Айхал
23 дня назад
|
0
Onliner, вот этого не знаю))
|
#7 - 26 марта 2015, четверг
|
Посетитель
Сообщений: 122
Айхал
2785 дней назад
|
0
Кравцов Лука, до меня позже дошло  я в группе писал)) 13.03.2008 это дата зачатия  а 26.03.2008 это дата рождения(запуска) сайта)) Должно же быть где-то на сайте или новость, или на форуме обсуждение давнишнее)) Точно помню что-то такое было и именно 26го марта С моим тырнетом не могу искать сейчас подтверждение)
Если ты дважды подумаешь, прежде чем один раз сказать, ты скажешь вдвое лучше.
|
#8 - 27 марта 2015, пятница
|
Администратор
Сообщений: 1468
Айхал
23 дня назад
|
0
Onliner, хорошо, что напомнил, так бы и совсем забыл!
|
#9 - 27 марта 2015, пятница
|
Посетитель
Сообщений: 122
Айхал
2785 дней назад
|
0
Кравцов Лука, не за что  но я ошибся  вчера, видать, так выпить хотел, что повод искал, а мне смену поставили  я посмотрел ночью по форумам и действительно, никакого 26 марта нет  ну что ж, бывает и хуже  главное месяц не перепутал
Если ты дважды подумаешь, прежде чем один раз сказать, ты скажешь вдвое лучше.
|
#10 - 28 марта 2015, суббота
|
Посетитель
Сообщений: 868
Уррюпинсск
10 часов назад
|
0
Вот как настоящий отец, забыл когда день рождения у моего детища)))  Не расстраивайся Лука,все равно ты наш..."папаня сайтовский",  а мы усе твои отпрыски. А отпраздновать...да отпразднуем в любое время и жахнем не один стопарик. С днем Рождения наш ЛЮБИМЫЙ САЙТ!!!!!!!!!!!!!!!
Судьба играет человеком,а человек играет на...трубе.
|