Система полуумного дома
Получение температуры...
Получение влажности...
Как известно, чтобы сайт находился в описке гугла и яндекса, нужно зайти в google search console или яндекс вебмастер, и там уже добавить свой сайт. Среди улучшений поиска они просят добавлять карту сайта xml. А так как у меня сайт написан в ручную своими руками без CMS, то требовалось какое-то решение, чтобы карта сайта сама создавалась/обновлялась. В первой версии на страничке обо мне я сделал кнопку - обновить это файл (естественно её видел только я), но каждый раз после добавления статьи тыкать туда - было негоже. Решено было на страничке добавления статьи (опять таки только я её вижу, да и доступна только мне) добавить функцию создания обновления карты сайта в формате xml.
В первую очередь смотрим требования к данному документу - в сети их полно, потом смотрим как создаются файлы xml на php. А дальше юзаем функцию fopen() и вуаля.
Что по логике функции - все просто. Для нчала в бд создаем новую таблицу, где для каждого раздела (ссылки в шапке) создается время последнего обновления, время создания статей уже записывалось раннее.
Пишем стандартный заголовок:
$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');
xmlwriter_start_document($xw, '1.0', 'UTF-8');
xmlwriter_start_element($xw, 'urlset');
xmlwriter_start_attribute($xw, 'xmlns');
xmlwriter_text($xw, "http://www.sitemaps.org/schemas/sitemap/0.9");
xmlwriter_end_attribute($xw);
Дальше стоит сделать ремарку. Все статьи независимо от раздела находятся в одной таблице в БД, в ней есть поле с указанием раздела в котором отображается эта стаья. Так вот дальше идёт перебор. Если раздел только что созданной таблицы совпадает с разделом, записываемым в данный момент в карту сайта, то туда пишется текущее время, а так же обновляется время последнего обновления в новой таблице. Все остальные разделы прописываются без изменений (время берется из той же таблицы, но новое не записывается). Частоту индексирования ставим раз в день - я же часто пишу новые статьи. Кроме "обо мне" - я обновляюсь не так часто, пусть будет месяц.
Со статьями все просто, берем все строки из таблицы со статьями и по одной записываем все данные в карту сайта. Псевдоссылки и время создания как раз там уже хранятся.Частоту обновления ставим никогда, статья написана, нечего ее больше трогать. Все делается в одном цикле. Под конец записываем всё в файл xml и закрываем его, а ну и делаем уведомление что всё получилось. =)))
xmlwriter_end_document($xw);
$xml = xmlwriter_output_memory($xw);
$fp = fopen("*/*.xml", "w");
if (fwrite($fp, $xml)) echo "Файл */*.xml успешно обновлен";
fclose($fp);
Название и расположение скрыто. И по сути данная функция испытана на локальном сервере, а этой статьей я испытва функцию на малиновом сервере.
mcfirsachy написал к публикации QUAD405 из поднебесной cледующее:
Кто дочитал до конца - извините за огромное количество ошибок =)))) Хотелось бы добавить что на выпрямителе стоит защита акустики - подключение колонок с задержкой.Сейчас в Сосновом Бору облачно с прояснениями
Скорость ветра 8.44 м/с
Влажность 81 %
Температура 12.32 °C
Получение температуры...
Получение влажности...