Войти
Меню :
xml (5)
sitemap (2)
php (386)



Blog (1576)
php (386)
js (295)
html (152)
css (140)
html tags (62)
js tag (56)
js method (44)
jquery (42)
php array (38)
text (37)
ruweb.net (37)
js date (33)
other (32)
form html (30)
fonts (30)
Показать еще :
online (30)
dosite (22)
js events (22)
php file (21)
foto (20)
atom (20)
input (19)
database (19)
php date (18)
svg (18)
forum (18)
lingvo (17)
info (17)
hosting (17)
mysql (17)
php time (16)
board (16)
php img (16)
color (15)
js url (14)
jsphp (14)
js time (14)
img (14)
htaccess (13)
html book (13)
yandex (13)
select (13)
notepad (13)
знак (13)
osclass (13)
table (13)
download (12)
keyboard (12)
dw block (12)
php path (12)
icon (11)
$ server (11)
mouse (10)
form (10)
js delete (10)
vs code (10)
ftp (9)
chart (8)
hover (8)
comment (7)
php post (7)
php url (7)
js vars (6)
hey tag (6)
canvas (6)
нок (6)
php get (6)
iframe (6)
list (6)
adminka (6)
click (6)
js file (5)
xml (5)
tag a (5)
js math (5)
js id (5)
reg.ru (5)
year (5)
mb (5)
heading (5)
console (5)
value (5)
web (5)
scandir (4)
js hash (4)
games (4)
numbers (4)
youtube (4)
base64 (4)
task (4)
month (4)
pages (4)
js form (4)
vk (4)
submit (4)
symbols (4)
week (4)
php var (4)
bbcode (4)
day (4)
ssl (4)
line (3)
aimp (3)
video (3)
https (3)
js post (3)
domen (3)
file (3)
units (3)
jquery post (3)
рся (3)
captcha (3)
money (3)
padding (3)
ucoz (3)
куб (3)
tag hr (2)
sitemap (2)
src (2)
js img (2)
google (2)
пк (2)
typeof (2)
prompt (2)
arrows (2)
blob (2)
seo (2)
details (2)
qr code (2)
counter (2)
height (2)
lingvo (1)
windows (1)
archive (1)
speed (1)
scroll (1)
cursor (1)
ok (1)
webp (1)
php day (1)
smile (1)
нод (1)
jino (1)
rutube (1)

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

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

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

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

  1. История/виды sitemap xml.

    06.12.2024

    В первом пункте разберем "историю" xml карт и заодно - эта тема будет темой "видов xml карт".

    Я занимаюсь сайтами уже так давно, что некоторые люди столько не живут! И первая моя "xml" карта, для первого моего сайта, была сделана вручную.
    Когда ты делаешь 1 страницу в неделю или около того, то спокойно можно добавлять в карту ваши ссылки вручную и кроме того, в то время, для тех сайтов, можно было делать только таким способом!

    После того, как меня это всё притомило, и количество сайтов и количество создаваемых страниц возросло, то я начал думать,что пора использовать какой-то способ, чтобы не делать это вручную!
    Идея и способ - плохие по многим причинам :

    Программа проходит по вашему сайту и собирает все ссылки, которые есть...

    Туда попадают и те, которые уже выдают 404.

    И туда не попадают некоторые ссылки, которые он не смог найти, либо не дошел.

    Постоянно требуется сервис, который вновь создаст вашу обновленную карту "XML" с новыми ссылками.

    Сколько действий нужно совершить:

    Создай карту...

    Скачай на комп...

    Открой программу по ftp...

    Загрузи на сайт...

    Php создание XML карты с записью в файл.

    К тому времени, когда я купил свой первый сайт на платном хостинге, кстати рекомендую : RUWEB, я уже имел некоторое представление о php.
    Этот способ не используется на этом сайте, но на marrex.ru он используется до сих пор!

    В момент создания/удаления страницы, "отдельный php скрипт" в цикле php проходит по базе и создает xml карту, этот способ описан ниже.

    И записывает(file_put_contents) созданную карту "xml" в файл, например : https://marrex.ru/sitemap.xml.

    "Виртуальный/на лету" вывод XML карты php.

    Поскольку, количество виртуальных страниц превысило все разумные приделы и создание физических(в файле) "sitemap.xml" стало занимать непомерное количество места, то пришлось разработать скрипт, который выводит все существующие страницы "на лету".


  2. Алгоритм создания автогенерации sitemap на php

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

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

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

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

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

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

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

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

    Ещё

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

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

    $array_Url

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

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

    Array

    (

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

    [1] => https://dwweb.ru/page/js/dw_hide_show.html

    [2] => https://dwweb.ru/page/js/atribut_data.html

    )

    Обновлено 2024.

    Ранее, здесь была ссылка на https://dwweb.ru/sitemap.xml, но с 2024 года, данный способ на данном сайте не используется, но этот способ всё еще используется вот здесь : https://marrex.ru/sitemap.xml!

    На сайте "dwweb.ru" используется виртуальный/живой вывод sitemap.xml.


  3. Массив всех ссылок сайта для карты 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();

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


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

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

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

    Если сейчас я выведу существующий пример массива для "strong" с помощью print_r:

    print_r($array_Url);

    То мы получим вот такой результат:

    Array

    (

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

    [1] => https://dwweb.ru/page/js/dw_hide_show.html

    [2] => https://dwweb.ru/page/js/atribut_data.html

    )


  5. Шапка и первая строка в карте 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>';


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

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

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

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

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

    Собираем основное тело "карты xml"

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

    {

    $data .= 'здесь в цикле создаем xml карту';

    }

    Закрываем карту xml

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

    $data .= '</urlset>';

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

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

    $_POST['submit'] - ваш "name" может быть другим...

    if($_POST['submit'])

    {

    записываем ранее полученные данные переменной "$data" в файл...

    }

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

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


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

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

    Что в архиве?

    В архиве выше приведенный схематично код создания/обновление карты сайта xml php.

    В переменную "$array_Url" нужно поместить массив ссылок.
    Вот здесь рассказывал как сделать такой массив.

    Помещаем данный код после записи о новой странице в базу данных.

    Данные из базы нужно получить заново иначе... данные о новой созданной странице не попадут в карту "xml".

    Данные в "xml карту будут записаны" по адресу:

    https://ваш_домен/sitemap.xml

    Используем file_put_contents :

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

    Собаку используем в том случае, если файла по этому адресу не существует.

    Если файла не существует и не поставить собаку, то вы получите ошибку типа "Warning"! И карта не запишется...

    Далее скрипт "автоматического обновления карты сайта xml" сделает все самостоятельно!

    В коде указан "$_POST['submit']" если нет такого "name" - используем тот, который у вас есть...

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

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


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

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

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

    Принцип работы "запись в файл карты 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

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

Не стесняемся говорить спасибо!
Дата последнего редактирования : 06.12.2024 16:47

О комментах : 05.11.2024
Свои комменты в ожидании переделки!
Когда сделаю не знаю!
Времени нет...
Друзья! Пожалуйста держите себя в рамках приличия!
Иначе сообщение будет удалено, вас в бан - все просто!
Но если, сил нет как хочется высказать всё, что вы думаете об этом, пожалуйста - комменты от Vk - форма ниже:
Помочь проекту DwWeb.ru

Поделиться ссылкой! C друзьями или врагами!

Этим вы очень поможете проекту! Заранее огромное спасибо!

Теги:
скрипт для сбора sitemap sitemap xml php автогенерация sitemap xml через php автоматическое создание sitemap автогенерация sitemap на php скрипт sitemap для html сайта sitemap генератор php скрипт для генерации sitemap xml
dwweb.ru есть здесь:
Все соцсети в одном месте!
Разное :Игра "пятнашки"
Угадай страну по флагу

Кальклятор
Математика онлайн

Списки шифрования
Часы

Числа словами
Названия чисел(max=10305)
Графики

Qr код онлайн

Как сделать сайт?
Md5 онлайн
Sitemap.html
Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2024 Контакты. Лучший хостинг : RUWEB + помощь по RUWEB Сайт работает круглосуточно 24/7.
Страница загружена за : 0.036776 секунд.