Делаем XML карту для сайта

22 августа 2014 Антон Кулешов 1280 0

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

Реклама

Для начала давайте рассмотрим, какие у нас есть варианты создания XML карты, вот несколько из них:

  1. Использовать различные XML карт генераторы, которые можно найти в интернете;
  2. Написать скрипт, который непосредственно будет работать c XML файлом и изменять его структуру при добавлении контента на сайт;
  3. Третий вариант написать обработчик, который будет эмитировать XML файл.

Возможно, есть и другие варианты, но эти мне пришли сразу на ум. В этой же статье пойдёт речь о третьем способе. Для реализации, которого нам потребуется для начала добавить пару строк в htaccess, если он есть, или создать.

RewriteEngine on
RewriteRule ^sitemap.xml?$ sitemap.php [L,QSA]

Эти два правила и будут выполнять первую часть способа, а именно эмитировать XML документ. RewriteEngine включает механизм преобразования на сервере, вторая строчка задает правило этого преобразования. Фактически когда приходит запрос на XML файл, идет выполнение PHP скрипта, который и выдает нам нужные ссылки для карты в XML формате.

Именно такой принцип, по моему мнению, очень удобен. Используя его, мы можем для каждого поискового робота сделать свою XML карту, немного изменив скрипт.

Теперь приступим к написанию самого обработчика:

// Подключаемся к БД
$db = new mysqli("localhost", "root", "", "db");
$db->set_charset("utf8");
if($db->connect_error){
	echo "<div style='color: red;'>ERROR БД</div>";
	exit;
}

// Вытягиваем нужные данные
$result = $db->query("SELECT id FROM articles");
$row = array();
for($i = 0; $i < $result->num_rows; $i++){
	$row[] = $result->fetch_assoc();
}

// Генерируем XML Карту
header("Content-type: text/xml; charset=UTF-8");

echo('<?xml version="1.0" encoding="UTF-8"?>'."\n");
echo('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n");
	echo("\t<url>\n");
	echo("\t\t<loc>http://mysite.ru</loc>\n");
	echo("\t</url>\n");
	// Ссылки
	foreach($row as $r){
		$url = 'http://mysite.ru/article/id/'.$r['id'];
		echo("\t<url>\n");
		echo("\t\t<loc>$url</loc>\n");
		echo("\t</url>\n");
	}
echo('</urlset>'."\n");

Визуально скрипт делиться на три части: подключение к БД, вытягивание данных (в примере - id статей) и генерация XML файла. В этом скрипте я использовал минимум необходимого кода, поэтому, если вам понравился способ, нужно будет изменить всего пару строк.

В результате мы получим вот такую картину, если обратиться непосредственно к XML файлу.

vyvod-xml-karty

Вот и всё, карта сайта готова.

Реклама
Комментариев еще не оставлено
no_avatar
Читайте далее

Яндекс Диск для совместной работы

30 декабря 2015 ti1schweiger

Работая в команде, необходимо иметь надёжные коммуникации. Как только мы начинали работу над falbar, данный вопрос встал очень жестко. Ведь каждая статья перед появлением в ленте проходит этап подборки, разработки демо и кода, написание основной статьи, редактирование и модерацию. На каждом этапе необходимо обмениваться материалами, что-то перекидывать на проверку, что-то добавлять. Ранее мы пользовались «файлообменником» Скайпом, но скорость передачи даже небольших файлов очень низкая и необходимо присутствие человека по ту сторону монитора для нажатия кнопки подтверждения. Чтобы уйти от необходимости ловить друг друга онлайн, мы перешли на Документы от ВКонтакте – и скорость хорошая, и залить файлы можно в любое время. Залил, прикрепил к сообщению и сбросил – на том конце в любой момент заберут. Однако соц.сеть не радовала своей надежностью и периодические сбои, связанные с невозможностью загрузить файлы на сервер, обратили наш взор к Яндекс Диску.

Аутентификация через «ВКонтакте»

2 декабря 2014 Антон Кулешов

Доброго времени суток, сегодня речь пойдет об авторизации пользователей на вашем сайте через социальную сеть «Вконтакте». Данный способ авторизации довольно популярен и его любят пользователи, ведь подобное решение избавляет от необходимости заполнять кучу полей формы, придумывать и запоминать пароль, ждать письма, подтверждать авторизацию на сайте. Ну а мы не заморачиваемся с проверками регулярных выражений, экономим место на хостинге и получаем сразу заполненный профиль пользователя с аватаркой, которую, к слову, редко кто спешит добавлять.

Работа с API Яндекс Метрикой

8 января 2015 Антон Кулешов

Недавно один пользователь «ВКонтакте» задал мне вопрос: как получить Яндекс токен для работы с API Метрикой? Проблема, по своей сути, не вызывает сложностей, хотя на тот момент я не мог дать исчерпывающего ответа. На поиск решения у «неподготовленного» читателя может уйти весьма продолжительный промежуток времени. В этой статье я рассмотрю простой пример работы с API Яндекс Метрикой и подробно распишу все этапы.