Динамическая карта сайта
В этом уроке мы научимся создавать динамическую карту сайта. Карта сайта облегчает поиск нужной информации для пользователя.
Выберем сайт или создадим новый, где мы разместим нашу карту сайта. Для примера я возьму структуру одного из моих сайтов. На этом сайте все данные хранятся в базе данных:
CREATE TABLE `news` ( `news_id` int(10) NOT NULL auto_increment, `news_name` varchar(255) NOT NULL, `news_text` text NOT NULL, `news_date` date NOT NULL, PRIMARY KEY (`news_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1; CREATE TABLE `tutorials` ( `tutorials_id` int(10) NOT NULL auto_increment, `tutorials_name` varchar(255) NOT NULL, `tutorials_text` text NOT NULL, `tutorials_date` date NOT NULL, PRIMARY KEY (`tutorials_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
Ну, что начнем создавать карту сайта. Для начала создадим нашей карте «скелет» с некоторыми необходимыми вещами (например, подключение к базе данных).
Рассмотрим код, который нам понадобиться. Первые 4 линий - подключения MySQL (Вы можете подключать по-разному - Это ваш выбор)
Header ( 'Content-Type: Application / XML ") - это линия" рассказывает "в браузер, что этот документ должен быть прочитанных как XML.
<?php
$user = 'username';
$pwd = 'password';
$conn = mysql_connect('localhost', $user, $pwd) or die (' Невозможно подключиться к серверу ');
mysql_select_db('database') or die (' База данных не хочет открываться ');
header('Content-Type: application/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>'."n";
?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
URL-адреса пишем здесь
</urlset>
<?php
echo '<?xml version="1.0" encoding="UTF-8"?>'."n";
?>
Создадим (или добавим уже в созданный) файл index.php:
<url>
<loc>http://www.yoursite.com/</loc>
<lastmod>
<?php
$sql = "SELECT MAX( news_date ) as date FROM news";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
echo str_replace(' ', 'T', $row['date']).substr(date("O"), 0, -2).':00';
?>
</lastmod>
</url>
Здесь мы имеем простой запрос MySQL (мы берем дату самых последних новостей из таблицы). Одной из интересных команд является команда echo str_replace ( '', 'T', $row [ ‘date’]). substr (date ( "O"), 0, -2). ': 00';
- str_replace и substr была использована для изменения формата даты Этот же метод можно использовать для tutorials.php файла. Для этого нам надо взять самую последнюю дату учебника.
Следующим важным моментом является viewtutorial.php файла.
<?php
$sql = "SELECT * FROM `tutorials`";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
?>
<url>
<loc>http://www.yoursite.com/viewtutorial.php?id=<?php echo $row['tutorials_id']; ?></loc>
<lastmod><?php echo str_replace(' ', 'T', $row['tutorials_date']).substr(date("O"), 0, -2).':00'; ?></lastmod>
</url>
<?php
}
?>
Здесь мы используем цикл, для того чтобы вытащить из таблицы идентификатор id для каждого значения из таблицы. В данном примере их будет два URL: vievtutorial.php?id=1 и viewtutorial.php?id=2
Вод так будет выглядеть написанный нами код:
<?php
$user = 'username';
$pwd = 'password';
$conn = mysql_connect('localhost', $user, $pwd) or die (' Cannot connect to server ');
mysql_select_db('database') or die ('Cannot open database');
header('Content-Type: application/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>'."n";
?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc>http://www.yoursite.com/</loc>
<lastmod>
<?php
$sql = "SELECT MAX( news_date ) as date FROM news";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
echo str_replace(' ', 'T', $row['date']).substr(date("O"), 0, -2).':00';
?>
</lastmod>
</url>
<url>
<loc>http://www.yoursite.com/tutorials.php</loc>
<lastmod>
<?php
$sql = "SELECT MAX( tutorials_date ) as date FROM tutorials";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
echo str_replace(' ', 'T', $row['date']).>substr(date("O"), 0, -2).':00';
?>
</lastmod>
</url>
<?php
$sql = "SELECT * FROM `tutorials`";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
?>
<url>
<loc>http://www.yoursite.com/viewtutorial.php?id=<?php echo $row['tutorials_id']; ?></loc>
<lastmod><?php echo str_replace(' ', 'T', $row['tutorials_date']).substr(date("O"), 0, -2).':00'; ?></lastmod>
</url>
<?php
}
?>
<url>
<loc>http:// www.yoursite.com/contact.php</loc>
<lastmod>2007-09-14T21:56:53<?php echo substr(date("O"), 0, -2).':00'; ?></lastmod>
</url>
</urlset>
Вот и все! Теперь Вы можете с легкостью создать динамическую карту сайта.
Последние уроки категории:
Сокращение PHP кода
Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...
Видимость переменных в PHP
В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.
Как читать Rss ленты?
Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.
Установка и настройка PHP+Apache
В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.
Как выбрать фреймворк
Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.




Комментарии:
Саша 10.03.2010 14:36:03