За последние 24 часа нас посетили 16174 программиста и 1552 робота. Сейчас ищут 943 программиста ...

fseek() или создание rss

Тема в разделе "Прочие вопросы по PHP", создана пользователем LokiFC, 27 июн 2008.

  1. LokiFC

    LokiFC Активный пользователь

    С нами с:
    27 июн 2008
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Default City
    Я тут решил создать файл для создания rss, но он не пашет :(
    Вод кот:
    PHP:
    1.  
    2. <?php
    3. $info = $_GET['to_rss']; //загружаю уже готовый код
    4. $file_rss = fopen ("rss.xml", "a+")or die ("open er");
    5. fseek($file_rss, -17, SEEK_END)or die("seek er"); //пропускаю с конца "</channel></rss>"
    6. echo $info; //эт для проверки))
    7. fwrite($file_rss, $info)or die("write er");
    8. fclose($file_rss);
    9. ?>
    10.  
    Браузер пишет "seek err", а в rss.xml инфа написалась после </channel></rss>
    Почему не работает fseek() ?
    Или ошибка где-то в другом месте?
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
     
  3. LokiFC

    LokiFC Активный пользователь

    С нами с:
    27 июн 2008
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Default City
    И че делать?
    Вобще есть какой-нибудь способ писать rss через php, чтоб он обновляясь не стирал предыдущие содержимые тега <channel>, а добовлял новые.

    Очень приятно было бы получить совет профи насчет автоматического создания rss(например как на башорге).

    Заранее благодарю =)
     
  4. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    обычно RSS генерируют автоматически
     
  5. R22

    R22 Активный пользователь

    С нами с:
    24 мар 2008
    Сообщения:
    78
    Симпатии:
    0
    Адрес:
    Odessa
    А если в сторону
    PHP:
    1. $doc = new DOMDocument('1.0', 'UTF-8');
     
  6. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Вы когда-нибудь документацию читаете?

    1. a+ - это открыть файл для добавления данных в конец файла (плюс чтение). В нем нельзя писать посередине. А конец файла - это то, что за самым последним символом. Безо всяких "почти".
    2. fseek в случае успеха возвращает 0; в противном сучае возвращает -1. А вы генерите ошибку если fseek выполнился успешно.
    3. А если в конце файла есть пробелы или переводы строк?
     
  7. LokiFC

    LokiFC Активный пользователь

    С нами с:
    27 июн 2008
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Default City
    Да знаю я прекрасно, что мой код никуя не рабочий...
    Короче, объясню еще раз. В стандарте файл-rss при обновлении не перерождается, а дополняется.
    Я могу спокойно сделать, чтоб писался новый файл с таким же именем в котором есть только один тэг channel с содержимым. Но мне нужно дополнять файл рсс, а не перерождать его. Дополнять, добавлять новые channel с содержанием, чтоб старые оставались жить. Это вобще в пхп возможно?
    Спасибо.

    AlexGousev, если бы я их не читал, то откуда бы я знал, что а+ к вконец нах посылает? Я считал, что в данном случае это не файл, а уже человеческая переменная, уж механизмы работы, извините, в документации так подробно не описывают.