DWWEB.RU
СКРИПТЫ

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

Я уже давно не думаю о создании карты сайта xml формата! Потому, что она у меня генерируется автоматически!

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

1. Иметь в переменной - должен быть массив ($array_Url) все ссылки(одна ячейка массива - одна ссылка), которые нужно поместить в xml карту!
2. В переменную $domen - получим ваш домен.
3. В цикле обернем наши ссылки в теги xml карты и помести все в переменную $data и с помощью file_put_contents запишем все ссылки нашей xml карты по адресу, в данном случае она должна открываться по адресу ваш_сайт/sitemap.xml ( https://dwweb.ru/sitemap.xml )
4. По какому-то условию данная карта будет перезаписываться! У меня sitemap xml -автоматически обновляется после создания новой страницы: if($_POST['submit']) - вместо этого можно поставить любое условие!

Код скрипта автоматического создания карты 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);

}


















Старый текст - еще не переделанный...

Назовем страницу Sitemap xml php – потому, что будем использовать в создании Sitemap xml код php.

Не будем углубляться в тему, зачем нужна Sitemap xml, если вы уже здесь, то, наверное, понимает зачем она нужна!

Алгоритмы создания Sitemap xml php.

Более интересным будет затронуть - алгоритмы создания Sitemap xml .

1. Хранение данных: как вы знаете, то данные могут храниться в файлах, либо в базе данных. Всё, что касаемо всех ссылок нашего сайта - они будут получаться в скрипте и оборачиваться в теги xml карты – все просто!
2. Код php для генерации Sitemap xml – будет одинаковый, что для файлов, что для базы данных.
Я как-то делал алгоритм создания Sitemap xml, что при создании новой страницы, новый код добавлялся в конец карты сайта xml, но потом отказался от этой идеи! Почему!? Потому, что в нашем файле, в котором все ссылки, периодически меняются некоторые страницы, а при добавлении все неправильные ссылки остаются в xml карте.

Мой скрипт создания xml карты

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

Давайте уже приступим к нашему скрипту, который использую у себя на сайте!

Для создания карты сайта, нам потребуется выбрать все ссылки из того места. Где они у вас хранятся – у нас это простой файл txt - пример

Первый блок между тегами - у нас стационарный, в котором указан домен сайта. И дата тоже стационарная. Если вы хотите. Чтобы каждый раз эта дата обновлялась, то туда надо вставить вот такую конструкцию вместо даты:
'.date('Y-m-d').'

Дата будет отображать сегодняшнюю дату:

2019-11-20

1.Начало и конец xml карты

Вначале используем те части, которые у нас не будут повторяться…

Стандартное начало карты сайта :

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

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

<url>

<loc>https://dwweb.ru/</loc>

<lastmod>2018-02-06</lastmod>

<changefreq>weekly</changefreq>

<priority>1.0</priority>

</url>'; 

Стандартный конец карты сайта xml

echo '
</urlset>'; 

2. Генерация ссылок для xml карты

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

Поскольку мы используем файл, то нам понадобится путь к этому файлу, мы уже привели сверху адрес этого фала, но нам нужно путь на сервере:

$путь_до_файла = $_SERVER['DOCUMENT_ROOT'].'/__a-data/_primer/php/xml/example.txt';

Ну и собственно практически все.. осталось обработать наш файл с данными, разобьем текст на строки - explode – разделитель перенос строки - \n Это у нас получится массив - его обработаем в цикле . Каждую строку, нам тоже надо разбить, чтобы получить дату(строка lastmod) и саму ссылку(строка loc), здесь у нас разделитель два двоеточия ::

$explode =  explode("\n", $путь_до_файла);

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

{

$line = explode("::",$explode[$i]); 

echo '

<url>

<loc>https://dwweb.ru/'.$line[7].'</loc>

<lastmod>'.$line[0].'-'.$line[1].'-'.$line[2].'</lastmod>

<changefreq>weekly</changefreq>

<priority>1.0</priority>

</url>';  

}

3. Запись в карту сайта xml.

И последнее, что у нас осталось – это записать все., что мы получили в скрипте в карту сайта – ваши предложения, что дальше будем делать!?

Возьмем мною любимую функцию file_put_contents
Но результат, работы нашего скрипта надо получить в переменную(text_for_xml) , чтобы все это записать в файл.

Примерно так:

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

И проверим результат записи:

  if($write_for_main){ echo '<br>Запись на xml сделана.';}else{echo '<br>Запись на xml  не сделана.';}

4. Готовая карта сайта xml.

Как результат работы нашего скрипта - наша карта сайта xml https://dwweb.ru/sitemap.xml

5. Соберем скрипт создания карты сайта xml.

Теперь давайте наш скрипт соберём в один файл и его вы можете скачать ниже…

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

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

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