Вопрос № 120466: Уважаемые эксперты нужна помощь, нужно php скрипт чтоб при запросе его, он с другого сайта брал фрагмент от определенного тега и сохранял его на сервер как страницу.
Например мне нужно на сайте http://www.championat.ru/football/
сохранить про...
Вопрос № 120.466
Уважаемые эксперты нужна помощь, нужно php скрипт чтоб при запросе его, он с другого сайта брал фрагмент от определенного тега и сохранял его на сервер как страницу.
Например мне нужно на сайте http://www.championat.ru/football/
сохранить продолжение публикаций, и чтоб новость брал к примеру после тегов
<a href='/football/_firstcup.html' class='greylink' onfocus='blur()'>Кубок Первого канала</a>
до
<hr size=1 noshade style='color:#dbdbdb'>
И продолжение было тоже после тегов (без мусора)
от
<a href='/football/_firstcup.html' class='greylink' onfocus='blur()'>Кубок Первого канала</a>
до
<hr size=1 noshade style='color:#01132c'>
И продолжение публикации сохранял он на сервер, в таком виде в котором она запрашивается на продолжение.
Например
Продолжение новости идет по ссылке http://www.championat.ru/football/article-18111.html
след-но он на сервере должен сохранить вот так http://localhost/football/article-18111.html
и чтоб в файле article-18111.html было продолжение новости извлеченная из тегов взятых выше.
Кто поможет буду очень благодарен, очень нужно, а сам не могу додуматься. Кто может помогите.
Отправлен: 28.01.2008, 02:23
Вопрос задал: sergesus (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Kruphi
Здравствуйте, sergesus!
Вот пример кода, который берет html текст по протоколу http и разбирает его на куски, ограниченные указанные Вами строками. Надеюсь из комментариев детали будут понятны. Результат заносится в массив $res.
// массив под результат
$res = array();
// Получаем файл (через HTTP HTML-источник)
$html = implode('', file('http://www.championat.ru/football/'));
$pos=0; // ищем с начала html файла
// Ищем все начала как подстроку
while(1)
{
// ищем начало
echo "<br>Ищем начало с позиции: $pos";
$start = strpos($html,"<a href='/football/_firstcup.html' class='greylink' onfocus='blur()'>Кубок Первого канала</a>",$pos);
if( $start===false ) // подстроки закончились
break; // выходим
// ищем конец
echo "<br>НАШЛИ начало - позиция $start";
$end = strpos($html,"<hr size=1 noshade style='color:#dbdbdb'>",$start);
if( $end===false ) // нет такой подстроки (странно)
break; // выходим из поиска
echo "<br>НАШЛИ конец - позиция $end";
// вытаскиваем весь кусок в новый элемент массива $res
$res[] = substr($html, $start, $end-$start );
// сдвигаем позицию начала поиска
$pos = $end+1;
}
Ответ отправил: Kruphi (статус: 3-ий класс)
Ответ отправлен: 29.01.2008, 00:51 Оценка за ответ: 5 Комментарий оценки: Спасибо большое очень помогли. Ща буду смотреть. Оценка отлично.