Всех друзей поздравляем с Новым годом! Всего вам самого наилучшего! Всех благ, здоровья а материальное приложится!
СКРИПТЫ althtmlcssphpjsblog

Скрипт автоматически создаваемая карта xml

Поддержи проект!!! smile

Как автоматически создавать карту xml? Я уже давно не думаю о создании карты сайта xml формата! Потому, что она у меня генерируется автоматически! На самом деле - автоматическая карта xml - это не такой уж сложный скрипт.

Подробно о автоматически создаваемой xml sitemap в php

  1. Алгоритм создания автогенерации sitemap на php
  2. Массив всех ссылок сайта для карты xml из базы данных
  3. Массив всех ссылок сайта для карты xml из файла
  4. Шапка и первая строка в карте xml
  5. Цикл для формирования карты xml
  6. Запись данных в карту xml
    Автоматическое обновление карты сайта xml.
  7. Код скрипта автоматического создания карты xml
  8. Проверка и запись в файл карты xml- вариант №2
  9. Скачать можно здесь
  1. Алгоритм создания автогенерации sitemap на php

    Прежде чем приступать к скрипту автогенерации sitemap на php нам нужен алгоритм, т.е. как данный скрипт должен работать!

    Мы должны хотя бы немного представлять. Но поскольку я знаю, как это работает, то напишу весь алгоритм!

    Первая часть sitemap xml не повторяется, поэтому её надо написать вручную. Я в начало всегда вставляю домен сайта "https://dwweb.ru/", чтобы не ломать голову! Помещаем эти данные в переменную, пусть это будет "$data"

    Самое важное и самое главное! Вы должны, каким-то образом получить все ссылки в массив. Далее в двух пунктах рассказано, как примерно должен собираться такой массив. Если у вас база данных либо, если у вас сайт на файлах.

    После того, как вы собрали в массив все ссылки вашего сайта, сделать основное тело проще простого! Запускаем цикл, в котором оборачиваем ваши ссылки в теги xml. Полученное тело также помещаем в переменную "$data"

    И последним пунктом - добавляем "urlset" - закрываем созданные данные из всех предыдущих пунктов. Это тоже добавляем нашей переменной "$data".

    После того, как вся ваша "sitemap xml" внутри переменной, её записываем с помощью функции file_put_contents. Это всё!

    Это - как должен работать генератор карты xml.

    Ещё

    Если вы понятия не имеете, как создать массив о котором было сказано выше, то ниже примерно показано, как этот процесс должен происходить!

    В итоге у вас должен получиться массив, который помещаем в переменную

    $array_Url
    Чтобы показать пример массива, то мы обрежем(весь массив огромен) массив с помощью array_splice до трех ячеек. И выведем с помощью print_r

    Пример вывод массива для xml карты

    Array

    (

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

    )

    Вы можете проверить на https://dwweb.ru/sitemap.xml

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

    В переменную $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();

    Какой в итоге долен получиться массив с ссылками!? Такой как данный пример.

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

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

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

    Опустим лишние подробности, вот тот основной код, который подготавливает наш массив для записи в 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

    )

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

    Две вещи в карте xml не повторяются - это шапка и "urlset", поэтому, шапку надо написать вручную и поместить в переменную "$data":

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

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

    Дополнительно к шапке(это не обязательно) Поскольку домен никак не фигурирует у нас в базе данных, то мы его должны добавить вручную, естественно, что получаю я его тоже автоматически
    В переменную $domen - получим ваш домен.
    В loc помещаем наш домен.
    В lastmod сегодняшнюю дату - в общем первый блок - шапка готова...

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

    $data .= '<url>

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

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

    <changefreq>weekly</changefreq>

    <priority>1.0</priority>

    </url>';

  5. Цикл для формирования осного тела карты xml

    После того, как у нас готова шапка "карты xml" нам нужно создать основное тело "карты xml".

    В пунктах 2,3 мы разобрали примерный алгоритм создания массива ссылок.

    Далее в цикле for пропустим получившийся массив, обернем наши ссылки, как это мы сделали с доменом.

    И поместим полученные данные в переменную "$data" :

    Собираем основное тело "карты 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>';

    }

    Закрываем карту xml После того, как мы создали основное тело "карты xml", закрываем последний тег "urlset"

    $data .= '</urlset>';


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

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

    if($_POST['submit'])

    {

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

    }


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

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

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

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

    Здесь... выше основго скрипта должен быть получен массив, о котором мы говорили в пункте 2. и 3.

    $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);

    }

  7. Проверка и запись в файл карты xml- вариант №2

    Для одного из проектов делал автоматически обновляемую карту сайта xml. Почему-то я про неё совсем забыл!

    А в архиве она есть.

    Логика проверки , обновления, записи в карту xml

    Данный скрипт устанавливаем на все страницы сайта, если у вас единая точка входа, то вы знаете, как это сделать.

    Копируем весь код от знаков <? до знаков ?> и вставляем в ваш сайт, о двух параметрах, на которые нужно обратить внимание чуть ниже.

    Вы, или кто-то зайдет на вашу новую страницу - скрипт проверит, есть ли данная страница в файле "XML" - если нет, то добавит эту страницу в конец файла.

    Если страница уже внутри файла "XML", то скрипт ничего не будет делать.

    Для отладки скрипта - лучше потренироваться где-то на отдельном файле xml. Чтобы не потерять главную карту xml.

    1). Путь до файла xml

    Строка № 19, меняем путь до вашего файла xml.

    $folder_sitemap = '/__a-data/php/xml/sitemap.xml';//Путь до карты сайта

    Если карта находится в корневой папке, т.е. у неё адрес как у меня "https://dwweb.ru/sitemap.xml", то строка №19 должна иметь вид:

    $folder_sitemap = '/sitemap.xml';//Путь до карты сайта

    2). Расширения файлов

    Строки 10,11 - фильтрация по расширению :

    $del = '.html';

    $del_2 = '.php';

    Адрес страницы из адресной строки браузера будет обрезаться по двум параметрам, потом обратно собираться, чтобы после расширения не собирать мусор. в виде, например get.

    Если, например, в строке окажутся повторение расширения ".html":

    https://dwweb.ru/example.htmlexample.html

    После фильтрации вернет :

    https://dwweb.ru/example.html

    Если адреса страниц не имеют перечисленных расширений, то адреса могут попадать с различным мусором из адресной строки.... нужно прописывать дополнительные фильтры.


Последняя дата редактирования : 10.03.2021 22:51
Название скрипта :Карта сайта xml через php
Скрипт № 13.1Ссылка на скачивание : Все скрипты на одной странице
//dwweb.ru/comments_1_5/include/img/hand_no_foto.png
no
no
Комментариев : 2 COMMENTS+   BBcode
аватар
🞨
Загрузить свой аватар
(max ширина, высота = 200px)

Подписаться + =

02/12/2020 11:42 Ольга Попова ... Пожаловаться Скопировать ссылку
🞨
По умолчанию, текст при блокировке:
Комментарий заблокирован администратором сайта
Для изменения текста блокировки введите новый текст ниже:
Заблокировать
Я уж было обрадовалась, а у меня не заработало(((
Ответить
03/12/2020 08:47 Марат Ольга Попова ... Пожаловаться Скопировать ссылку
🞨
По умолчанию, текст при блокировке:
Комментарий заблокирован администратором сайта
Для изменения текста блокировки введите новый текст ниже:
Заблокировать
Давно пользуюсь данным скриптом, который написал еще при царе горохе!
За десять лет изменилось то, что и при удалении страницы карта "xml" обновляется.
Алгоритм работы до банальности прост!
1). Получить все ссылки в массив.
2). Обернуть в цикле в теги "xml".
3). Записать в файл.
Ответить
Теги:
скрипт для сбора sitemapsitemap xml phpавтогенерация sitemap xml через phpphp автоматическое создание sitemapавтогенерация sitemap на phpскрипт sitemap для html сайтаsitemap генератор phpскрипт для генерации sitemap xml

Счетчик в график :

Построение гравиков
Основа для графика : счетчик посещаемости.
Последние комментарии :
Марат :
13/04/2021 08:12
Во-первых пожалуйста!1). $new_array - был прописан оттого, что контент на сайте пишется на живых примерах. И часто…
подробнее.
Валерий :
13/04/2021 05:47
перебрал весь материал- во первых спасибоискал другое но понравился Ваш материалerror - или неточность 1. везде…
подробнее.
Марат :
08/04/2021 07:12
Сам афигеваю!
подробнее.
stream :
07/04/2021 05:56
Неплохо)
подробнее.
Марат :
24/03/2021 11:01
Да что вы!? За что обижаться то?Вы тот редкий человек, который смог написать! Вы молодец!Человек, же который не…
подробнее.