Динамическая карта сайта

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

Выберем сайт или создадим новый, где мы разместим нашу карту сайта. Для примера я возьму структуру одного из моих сайтов. На этом сайте все данные хранятся в базе данных:

			    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>
			    

Вот и все! Теперь Вы можете с легкостью создать динамическую карту сайта.

Просмотров: 1605      Опубликовал: Евгений Фединчик      Дата: 05.03.2010 13:59:08
  • Понравился урок? Добавьте его к себе в закладки.

    Последние уроки категории:

    Сокращение PHP кода

    Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...

    Видимость переменных в PHP

    В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.

    Как читать Rss ленты?

    Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.

    Установка и настройка PHP+Apache

    В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.

    Как выбрать фреймворк

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

    Комментарии:

    • Саша 10.03.2010 14:36:03
      Спасибо. Очень интересный урок
      Ответить
    • Осталось: 1000 символов.
      Сохранить комментарий Отправка комментария
    lessons
    downloads
    search
    hosting

    Ищите хороший и не дорогой хостинг?

    Хостинг avahost.ua
    VPS VDS - виртуальный выделенный сервер
    sistems
    RBK Money

    Обменник.ws
    Статистика HitUa