За последние 24 часа нас посетили 16732 программиста и 1606 роботов. Сейчас ищут 1405 программистов ...

Подкорректировать код

Тема в разделе "Сделайте за меня", создана пользователем CHEBURNATOR, 17 мар 2015.

  1. CHEBURNATOR

    CHEBURNATOR Новичок

    С нами с:
    17 мар 2015
    Сообщения:
    8
    Симпатии:
    0
    Добрый день знатоки php.
    Я php не знаю вообще, с горем пополам html владею.
    Привело меня на ваш форум тупиковая ситуация, которые могут помочь решить только люди со знанием дела.
    Дано: на руках скрипт php, с помощью которого можно парсить выдачу Google Alerts.
    Задача: парсить Google Alerts и заносить спаршенное в текстовый файл.
    Скрипт писал не я, а наткнулся на просторах интернета.
    Проблема банальна - не работает.
    А точнее работает, но в файл в который он заносит спаршенные данные, он заносит ошибку а не данные.
    Заносит только "t=j", а по идее должне заносить ссылки, которые выдает Алертс.
    Такой ошибки в инете не нашел, и как чинить инет тоже не подсказал.
    Ваш форум посмотрел, вроде тоже не видел подобной ситуации.
    Уверен, что знающий человек ошибку увидит сразу, а я буду перелопачивать толпы сайтов пока допетрю.
    Я бы с радостью сам бы разобрался, да не уверен что с php пересекаться буду.

    Спасибо всем кто откликнется. Мир тесен, может и я чем смогу помочь.
    P.S>отвечу на любые вопросы, кроме самого кода. В нем я НОЛЬ.

    Сам код:
    Код (Text):
    1. <?php
    2.  
    3. $url = 'http://www.google.com/alerts/feeds/06532479474629933794/*************';  //адрес RSS-ленты
    4.  
    5. $rss = @file_get_contents($url);    //получаем содержимое RSS лент в виде одной строки
    6.  
    7. if ($rss) {
    8.     preg_match_all("/title>[^>]+>/", $rss, $title);     //парсим титлы
    9.     $count = count($title[0])-1;    //число проходов цикла.
    10.  
    11.    
    12.     $fp = fopen("link.txt", "ab"); // Открываем файл в режиме записи
    13.     $mytext = "";
    14.  
    15.     for ($i=0; $i < $count; $i++) {
    16.         $st = substr($title[0][$i+1], 48, -8);      //выводим на печать заголовок статьи
    17.         $st = substr($st, 0,(strpos($st, "&")));
    18.         echo $st.'</br>';
    19.         $mytext .= "$st\r\n";
    20.     }
    21.    
    22.     $test = fwrite($fp, $mytext); // Запись в файл
    23.     if ($test) echo '<br>Данные в файл: <a href="link.txt">link.txt</a> успешно занесены.';
    24.     else echo '<br>Ошибка при записи в файл.';
    25.     fclose($fp); //Закрытие файла
    26. } else {
    27.     echo '<font color="red">Ошибка парсинга '.$url.'</font>'; //выводим ошибку если file_get_contents() вернула false
    28. }
    29. ?>
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    А где адрес RSS ленты которую хочешь парсить?
     
  3. CHEBURNATOR

    CHEBURNATOR Новичок

    С нами с:
    17 мар 2015
    Сообщения:
    8
    Симпатии:
    0
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. if ($xmlstr = file_get_contents('http://www.google.com/alerts/feeds/15885175215414900989/1094517350329342789') ) {
    2.     $xml = new SimpleXMLElement($xmlstr);
    3.     file_put_contents('feed.txt', $xml->title.PHP_EOL);
    4. } 
     
  5. CHEBURNATOR

    CHEBURNATOR Новичок

    С нами с:
    17 мар 2015
    Сообщения:
    8
    Симпатии:
    0
    Это код как замена тому коду целиком или какая то часть для замены?
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Если задача получить из тега title содержание и записать его в файл, то это всё.
    Думаю в оригинальном коде было больше чем один title тег, но какой пример дал, на такой и код написал.
     
  7. CHEBURNATOR

    CHEBURNATOR Новичок

    С нами с:
    17 мар 2015
    Сообщения:
    8
    Симпатии:
    0
    Задача из тега собрать ссылки. Чтобы с помощью выдачи Google Alerts собрать своего рода базу ссылок.
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Из какого тега ссылки? В том примере покажи какие ссылки

    Код (PHP):
    1. $data = '';
    2.  
    3. if ($xmlstr = file_get_contents('http://www.google.com/alerts/feeds/15885175215414900989/1094517350329342789') ) {
    4.  
    5.     $xml = new SimpleXMLElement($xmlstr);
    6.  
    7.     foreach ($xml->entry as $entry) {
    8.  
    9.         $data .= $entry->link['href'].PHP_EOL;
    10.     }
    11.     file_put_contents('feed.txt', $data);
    12. } 
     
  9. CHEBURNATOR

    CHEBURNATOR Новичок

    С нами с:
    17 мар 2015
    Сообщения:
    8
    Симпатии:
    0
    denis01, спасибо большое!
    Второй вариант работает.
    В благодарность могу бесплатно Хрумером (лицензия) прогнать, или шаблон на Зеннопостер написать.
    Пишите, если что то из перечисленного вам вдруг понадобится.