Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

rss
На страницу 1, 2  След.
 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Ср Окт 15, 2008 2:49 pm    Заголовок сообщения: rss
Ответить с цитатой

Добрый день
купил вашу книгу(Профессиональное программирование на php) очень понравилась
но возник один вопрос по грабберу новостей
если можна более подробней о создании файла news.php
Заранее спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Окт 15, 2008 6:32 pm    Заголовок сообщения:
Ответить с цитатой

что именно непонятно?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Ср Окт 15, 2008 7:17 pm    Заголовок сообщения:
Ответить с цитатой

вот я создал файл index.php для вывода новостей
выводит нормально, а как заменить ссылки
<?php
include "../util/top_site_first.php";


$txt = join(' ', file('http://сайт/news/import.php'));

echo $txt;


include "../util/bottom_site_first.php";
?>
а дальше что-то не получается
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Окт 16, 2008 5:06 am    Заголовок сообщения:
Ответить с цитатой

А причем тут файл import? Он импортирует новости с RSS-ленты на сайт. Файл news.php - это граббер. Вы передаете ему ссылку на новость, а он ее извлекает из дизайна сайта. Как правило, все новостные страницы построены по принципу:

HTML_КОД_1
Текст новости
HTML_КОД_2

Наша задача извлечь HTML-код новости, находящийся между КОД1 и КОД2. Потом мы удаляем из кода новости лишние теги, оставив только те, что нам нужны, например, P, IMG и выводим новость


<?php

// получаем Web-страницу с новостью
// переменная $u содержит URL страницы
$f=join('<BR>', file($u));

// начало новости
$begin=strpos(strtolower($f), "<h1>", 0);

// конец новости
$end=strpos(strtolower($f), '</td></tr></table>', $begin);

// вырезаем то, что нам нужно - текст новости
$txt=substr($f, $begin, $end-$begin);

// некоторые сайты используют кодировку KOI8-R, поэтому
// данная строка может понадобиться для перекодирования из KOI8-R
// в windows-1251
// $txt = convert_cyr_string($txt,"k","w");

// удаляем все теги, кроме <p> и <img>
$txt = strip_tags($txt, '<p><img>');

// выводим текст новости
echo $txt;

?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Чт Окт 16, 2008 6:42 am    Заголовок сообщения:
Ответить с цитатой

я понял как статья вырезается, а как вывести список новостей с нужной ссылкой
$txt = join('',file('http://site/import.php')); Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Чт Окт 16, 2008 7:01 am    Заголовок сообщения:
Ответить с цитатой

я думаю проблема в передаче юрл статьи
когда я нажимаю на статью мне выдает вот:
Warning: file($u) [function.file]: failed to open stream: No such file or directory in /home/site/data/www/site/news/news.php on line 5

Warning: join() [function.join]: Invalid arguments passed in /home/site/data/www/site/news/news.php on line 5


если я в ручную вставлю адрес$f=join('<BR>', file('http://itnews.com.ua/44252.html')); статьи то нормально
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Чт Окт 16, 2008 8:34 am    Заголовок сообщения:
Ответить с цитатой

спасибо разобрался, взял вручную переписал и работает Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Окт 16, 2008 9:28 am    Заголовок сообщения:
Ответить с цитатой

Вот пример работы этого скрипта в работе

http://dkws.org.ua/index.php?page=lenta
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Чт Окт 16, 2008 12:46 pm    Заголовок сообщения:
Ответить с цитатой

а подскажи как справиться с xml

<MMWEATHER>

<REPORT type="frc3">

<TOWN index="34504" sname="%C4%ED%E5%EF%F0%EE%EF%E5%F2%F0%EE%E2%F1%EA" latitude="49" longitude="35">

<FORECAST day="9" month="10" year="2008" hour="21" tod="3" predict="18" weekday="5">
<PHENOMENA cloudiness="0" precipitation="10" rpower="0" spower="0"/>
<PRESSURE max="755" min="753"/>
<TEMPERATURE max="12" min="10"/>
<WIND min="3" max="6" direction="0"/>
<RELWET max="81" min="76"/>
<HEAT min="10" max="12"/>
</FORECAST>

<FORECAST day="10" month="10" year="2008" hour="3" tod="0" predict="24" weekday="6">
<PHENOMENA cloudiness="0" precipitation="10" rpower="0" spower="0"/>
<PRESSURE max="757" min="755"/>
<TEMPERATURE max="9" min="7"/>
<WIND min="2" max="5" direction="0"/>
<RELWET max="87" min="82"/>
<HEAT min="7" max="9"/>
</FORECAST>

<FORECAST day="10" month="10" year="2008" hour="9" tod="1" predict="30" weekday="6">
<PHENOMENA cloudiness="0" precipitation="10" rpower="0" spower="0"/>
<PRESSURE max="759" min="757"/>
<TEMPERATURE max="10" min="8"/>
<WIND min="1" max="3" direction="1"/>
<RELWET max="74" min="69"/>
<HEAT min="8" max="10"/>
</FORECAST>

<FORECAST day="10" month="10" year="2008" hour="15" tod="2" predict="36" weekday="6">
<PHENOMENA cloudiness="0" precipitation="10" rpower="0" spower="0"/>
<PRESSURE max="757" min="755"/>
<TEMPERATURE max="13" min="11"/>
<WIND min="1" max="3" direction="6"/>
<RELWET max="48" min="43"/>
<HEAT min="11" max="13"/>
</FORECAST>
</TOWN>
</REPORT>
</MMWEATHER>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Окт 16, 2008 1:21 pm    Заголовок сообщения:
Ответить с цитатой

а что сделать то нужно?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Чт Окт 16, 2008 2:17 pm    Заголовок сообщения:
Ответить с цитатой

как вывести у себя на сайте эту информацию
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Чт Окт 16, 2008 7:50 pm    Заголовок сообщения:
Ответить с цитатой

вот ссылка информера http://informer.gismeteo.ru/xml/34504_1.xml
как его вывести у себя на странице
заранее большое спасибо
И подскажите нормальную книгу по xml
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Окт 18, 2008 3:41 am    Заголовок сообщения:
Ответить с цитатой

Рекоменду прочитать статью

http://webmastak.com/article.aspx?id=104
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Пт Ноя 07, 2008 8:26 am    Заголовок сообщения:
Ответить с цитатой

Привет подскажи как вырезать статью, а то у меня не получается
вот статьи
http://www.natali.ua/materials/rss10.php
вот я вырезаю статью news.php
<?php
include "../util/top_site_first.php";

// получаем Web-страницу с новостью
// переменная $u содержит URL страницы
$f=join('<BR>', file($u));

// начало новости
$begin=strpos(strtolower($f), '<h1 class="hdb">', 0);

// конец новости
$end=strpos(strtolower($f), '</i></p><br>', $begin);

// вырезаем то, что нам нужно - текст новости
$txt=substr($f, $begin, $end-$begin);

// некоторые сайты используют кодировку KOI8-R, поэтому
// данная строка может понадобиться для перекодирования из KOI8-R
// в windows-1251
$txt = convert_cyr_string($txt,"k","w");

// удаляем все теги, кроме <p> и <img>
$txt = strip_tags($txt, '<p><img>');

// выводим текст новости

echo '<br>'.$txt;
include "../util/bottom_site_first.php";
?>
У меня получается пустая статья
не пойму возможно какая-то мелкая ошибка

если я вывожу $u то получается
http://www.natali.ua/materials/show.html?p=10 т.е. теряется один параметр &id=*

Заранее спасибо


Последний раз редактировалось: alex2103 (Пт Ноя 07, 2008 10:01 am), всего редактировалось 2 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alex2103

Новенький


Зарегистрирован: 15.10.2008
Сообщения: 57

СообщениеДобавлено: Пт Ноя 07, 2008 9:40 am    Заголовок сообщения:
Ответить с цитатой

если задать непосредственно адрес статьи // получаем Web-страницу с новостью
// переменная $u содержит URL страницы
$f=join('<BR>', file('http://www.natali.ua/materials/show.html?p=10&id=2295'));
то нормально получается, только картинки не отображаются
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис