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

Запись google sitemap в xml файл средствами PHP

Тема в разделе "Прочие вопросы по PHP", создана пользователем Lenokk, 31 мар 2009.

  1. Lenokk

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

    С нами с:
    31 мар 2009
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Питер
    Здравствуйте! Передо мной стоит такая задача - имеется скрипт поиска, в нем есть файл, который генерит google sitemap и выводит ее - но в виде php файла, а не xml.

    PHP:
    1. $isearch_path = dirname(__FILE__);
    2. define('IN_ISEARCH', true);
    3.  
    4. require_once "$isearch_path/inc/core.inc.php";
    5. require_once "$isearch_path/inc/search.inc.php";
    6.  
    7. isearch_open(True);
    8.  
    9. $result = mysql_query("SELECT url, lastmod, changefreq, priority FROM $isearch_table_urls ORDER BY url", $isearch_ro_db);
    10. if (!$result)
    11. {
    12.     echo "<p>MySQL error : " . mysql_error() . ' File: ' . __FILE__ . ', Line:' . __LINE__ . "</p>\n";
    13. }
    14. else if (mysql_num_rows($result) > 0)
    15. {
    16.  
    17.     if ($isearch_config['char_set_8_bit'])
    18.     {
    19.         $trans = get_html_translation_table(HTML_ENTITIES);
    20.     }
    21.     else
    22.     {
    23.         $trans = get_html_translation_table(HTML_SPECIALCHARS);
    24.     }
    25.  
    26.     echo '<?xml version="1.0" encoding="UTF-8"?>
    27.  
    28. <!-- Powered by iSearch2                     -->
    29. <!-- [url]http://www.iSearchTheNet.com/isearch[/url]    -->
    30.  
    31. <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
    32. ';
    33.     while ($item = mysql_fetch_object($result))
    34.     {
    35.         echo '
    36.   <url>
    37.     <loc>'.strtr($item->url, $trans).'</loc>
    38. ';
    39.         if ($item->lastmod > 0)
    40.         {
    41.             echo '    <lastmod>'.date('Y-m-d', $item->lastmod).'T'.date('H:i:s', $item->lastmod).'+00:00</lastmod>
    42. ';
    43.         }
    44.         if ($item->changefreq != '')
    45.         {
    46.             echo '    <changefreq>'.$item->changefreq.'</changefreq>
    47. ';
    48.         }
    49.         if ($item->priority >= 0)
    50.         {
    51.             echo '    <priority>'.$item->priority.'</priority>
    52. ';
    53.         }
    54.         echo '  </url>
    55. ';
    56.     }
    57.     echo '
    58. </urlset>
    59. ';
    60. }
    61. ?>
    Помогите пожалуйста, я уже все руководства по DOM и созданию xml файла на php прочитала, но не могу понять - как, обращаясь к объектам в цикле (не массивам), как сделано на этой странице, совместить все это с записью в xml файл. В руководствах приведены примеры, когда в файл записываются данные например из массива (где они прописаны вручную), а у нас данные генерятся динамически по мере того как паук проходит по ссылкам сайта. Знания по xml слабые. Скрипт нужно сделать к сроку "еще вчера".