DWWEB.RU
СКРИПТЫ

Sitemap xml php карта сайта автоматически

Я уже давно не думаю о создании карты сайта xml формата! Потому, что она у меня генерируется автоматически! Главная загвоздка данного автоматического генератора карты сайта - ему нужен массив всех ссылок вашего сайта! Есть разные генераторы карт сайта, которые существуют в интернете, но почему я начал разрабатывать свой скрипт - просто потому, что генерация карты сайта не зависит от сторонних сервисов,и обновляется при создании новой страницы!

Зачем нужны первые две ссылки!? Для того, чтобы подготовить массив с ссылками для создания xml карты! И показать вам, как примерно должно происходить у вас, и как происходит у меня...

Навигация по странице :
  1. Массив всех ссылок сайта для карты xml из базы данных
  2. Массив всех ссылок сайта для карты xml из файла
  3. Шапка и первая строка в карте xml
  4. Цикл для формирования карты xml
  5. Запись данных в карту xml
  6. Автоматическое обновление карты сайта xml.
  7. Код скрипта автоматического создания карты xml

Что нам требуется для создания xml карты!?

В переменной - должен быть массив ($array_Url) все ссылки(одна ячейка массива - одна ссылка), которые нужно поместить в xml карту!

    Массив всех ссылок сайта для карты xml из базы данных

  1. В переменную $array_Url нужно поместить ваш массив с ссылками. Я не знаю структуру вашего сайта. Если ссылки на вашем сайте генерируются из базы данных, то вам понадобится вывести из поля базы, которое отвечает за ссылку, так, как написано здесь(пункт 2):

    До начала цикла, перед строкой

    while ($row=mysql_fetch_array($result))

    Пишем такую запись:

    $array_Url = array();
    От слов // выводим данные до скобки }, все удаляем... и ставим такую запись:
    $array_Url[] = $row["столбец отвечающий за ссылку"];

    У вас должно получиться примерно так:

    $sdd_db_host="localhost";

    $sdd_db_name="НАЗВАНИЕ-БАЗЫ-ДАННЫХ";

    $sdd_db_user="ПОЛЬЗОВАТЕЛЬ";

    $sdd_db_pass="ПАРОЛЬ";

    @mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);

    @mysql_select_db($sdd_db_name);

    $result=mysql_query("SELECT * FROM `НАЗВАНИЕ ТАБЛИЦЫ`");

    $array_Url = array();

    while ($row=mysql_fetch_array($result))

    {

    $array_Url[] = $row["столбец отвечающий за ссылку"];

    }

    mysql_close();


    Массив всех ссылок сайта для карты xml из файла

  2. Далее мы переходим на путь непознанный, потому, что хранить данные в файлах могут по разному!

    Не будем заниматься предположениями, как, где-то, возможно устроено..., а просто продемонстрируем, как это устроено у нас...

    Опустим лишние подробности, вот тот основной код, который подготавливает наш массив для записи в xml карту...

    В ячейке $line_explode[7] лежит ссылка на страницу, без домена и папки... их надо к ней добавить...

    $array_Url = array();

    $count_rotate = count($main_fale_rotate);//считаем массив

    for ($i=0; $i < $count_rotate; $i++)

    {

    $line_explode = explode('::' , $main_fale_rotate[$i]); //разделим ячейку массива по разделителю

    $array_Url[] = 'https://dwweb.ru/page/'.$line_explode[7];//добавим домен и папку

    }

    Для примера вот три строки из файла:

    Array

    (

    [0] => 2018::02::01::php.png::Page about our encryption::The first page of the training! Page about our encryption!::Марат::test.html::#ALL::PHP/INFO/

    )

    Применим выше идущий скрипт к данному массиву и получим:

    Array

    (

    [0] => https://dwweb.ru/page/test.html

    )


    Шапка и первая строка в карте xml

  3. Я обычно делаю так: в первый блок карты сайта помещаю название домена, чтобы не мучаться получим его автоматически
    В переменную $domen - получим ваш домен. В loc помещаем наш домен, в lastmod сегодняшнюю дату - в общем первый блок -шапка готова...

    $domen = $_SERVER["HTTP_X_FORWARDED_PROTO"].'://'.$_SERVER["HTTP_HOST"];

    $data = '<?xml version="1.0" encoding="UTF-8"?>

    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

    <url>

    <loc>'.$domen.'</loc>

    <lastmod>'.date('Y').'-'.date('m').'-'.date('d').'</lastmod>

    <changefreq>weekly</changefreq>

    <priority>1.0</priority>

    </url>';


    Цикл для формирования карты xml

  4. Далее в цикле перебираем получившийся массив в пункте 1,2, оборачиваем аналогичным способом, только без шапки xml карты. В конце добавляем конец карты..

    for ($i=0; $i < count($array_Url) ; $i++)

    {

    $data .= '

    <url>

    <loc>'.$array_Url[$i].'</loc>

    <lastmod>'.date('Y').'-'.date('m').'-'.date('d').'</lastmod>

    <changefreq>weekly</changefreq>

    <priority>1.0</priority>

    </url>';

    }

    $data .= '</urlset>';


    Запись данных в карту xml

  5. Далее нам понадобится функция file_put_contents - запишем в файл xml подготовленные данные!

    if($_POST['submit'])

    {

    $write_for_main = file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml' , $data);

    }


    Автоматическое обновление карты сайта xml.

  6. По какому-то условию данная карта будет перезаписываться! У меня sitemap xml -автоматически обновляется после создания новой страницы: if($_POST['submit']) - вместо этого можно поставить любое условие!

    Код скрипта автоматического создания карты xml

  7. Соберем весь код генератора карты сайта xml в один код...

    $domen = $_SERVER["HTTP_X_FORWARDED_PROTO"].'://'.$_SERVER["HTTP_HOST"];

    $data = '<?xml version="1.0" encoding="UTF-8"?>

    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

    <url>

    <loc>'.$domen.'</loc>

    <lastmod>'.date('Y').'-'.date('m').'-'.date('d').'</lastmod>

    <changefreq>weekly</changefreq>

    <priority>1.0</priority>

    </url>';

    for ($i=0; $i < count($array_Url) ; $i++)

    {

    $data .= '

    <url>

    <loc>'.$array_Url[$i].'</loc>

    <lastmod>'.date('Y').'-'.date('m').'-'.date('d').'</lastmod>

    <changefreq>weekly</changefreq>

    <priority>1.0</priority>

    </url>';

    }

    $data .= '</urlset>';

    if($_POST['submit'])

    {

    $write_for_main = file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml' , $data);

    }

Не забудь !
Название скрипта :Карта сайта xml через php
Скрипт № 10.1
Скачать - архив
Все скрипты на одной странице
Оставить комментарийCOMMENTS+
Сообщений пока нет - Вы можете стать первым
BBcode
нажмите, чтобы загрузить аватар
Загрузить свой аватар(max ширина, высота = 100px) ( как это работает)

Закрыть
+ =
Подписаться
Теги:
sitemap xml phpавтогенерация sitemap xml через phpphp автоматическое создание sitemapавтогенерация sitemap на phpскрипт sitemap для html сайта

НАШИ ПРОЕКТЫ : Проекты находятся в разной степени готовности (просто их столько, что времени не хватает…) Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2019