В този урок ще се спрем на темата споделяне на информация от вашата страница. Ако имате желание да бъде публикувана информацията от вашата страница на други страници то тогава вие имате възможност да направите това по много различни начини. В този урок ще разгледаме две възможности. Споделяне на информацията чрез
RSS и JavaScript.
Споделяне на информацията чрез RSS
Като начало ще започнем с RSS, тъй като това е най-практикуваната размяна на информация. За тази цел вие трябва да предоставите на интересуващите се от вашата информация, един
XML файл, който те редовно могат да извличат от вашия сървър.
Нека да разгледаме един пример с няколко заглавия, които бихме искали да предоставим като RSS документ.
Тъй като всеки RSS документ е стандартизиран, той трябва да е строго дефиниран и трябва поне да има следната минимална структура.
Нека сега да създадем нашият RSS документ на базата на една примерна информация запазена в един двоичен масив:
CODE1
2
3
4
5
6
7
8
9
10
11
12
| $info = array(
array('Просто един ефект!','Някакво обяснение към темата ...','2005-11-10'),
array('PHP система за UPLOAD','Някакво обяснение към темата ...','2005-11-09'),
array('PHP, MySQL & Smarty шаблони','Някакво обяснение към темата ...','2005-11-08'),
array('Как да си направим Прелоудър.','Някакво обяснение към темата ...','2005-11-07'),
array('Масиви в PostgreSQL','Някакво обяснение към темата ...','2005-11-06'),
array('Галерия с Photoshop','Някакво обяснение към темата ...','2005-11-05'),
array('Macromedia Flash: Времеви ефекти част3','Някакво обяснение към темата ...','2005-11-04'),
array('Как да пуснем VPN под Линукс ?','Някакво обяснение към темата ...','2005-11-03'),
array('Монтиране на windows дялове таке в Слакуер','Някакво обяснение към темата ...','2005-11-02'),
array('Първи стъпки в MySQL','Някакво обяснение към темата ...','2005-11-01')
); |
Сега стъпка по стъпка ще разгледаме структурата на документа:
Изпращане типа на документа (XML):
CODE1
| header('Content-Type: text/xml'); |
Този ред определя версията на XML документа и кодировката на информацията
CODE1
| $xml_file = "<?xml version="1.0" encoding="windows-1251" ?>n"; |
Това е отварящият таг на RSS документа, като се задава и версията му:
CODE1
| $xml_file .= "<rss version="2.0">n"; |
Този таг обхваща цялата информация в документа:
CODE1
| $xml_file .= "<channel>n"; |
Заглавие на документа:
CODE1
| $xml_file .= "<title>IT-PLACE.NET - Уроци и Скриптове на Български Език</title>n"; |
Линк към страницата предоставила информацията:
CODE
Език на информацията в документа:
CODE1
| $xml_file .= "<language>bg</language>n"; |
Дата на създаване на документа:
CODE1
| $xml_file .= "<pubDate>Fri, 02 Dec 2005 20:55:35 GMT</pubDate>n"; |
Чрез функция
foreach прочитаме масива и вмъкваме следната информация в следните тагове:
CODE1
2
| foreach ($info as $value)
{ |
Това е тагът който обхваща една единица информация:
CODE1
| $xml_file .= "<item>n"; |
Заглавие на единицата информация:
CODE1
| $xml_file .= "<title>".htmlspecialchars($value[0])."</title>n"; |
Описание на единицата информация:
CODE1
| $xml_file .= "<description>".htmlspecialchars($value[1])."</description>n"; |
Линк към информацията:
CODE
Дата на публикуване на единицата информация:
CODE1
| $xml_file .= "<pubDate>".$value[2]."</pubDate>n"; |
Затваряне на единицата информация:
CODE1
2
| $xml_file .= "</item>n";
} |
Затваряне на тага обхващащ информацията:
CODE1
| $xml_file .= "</channel>n"; |
Затваряне на RSS документа:
CODE
И най-накрая извеждане на горе създаденото:
CODE
Ето и целия пример за тестване:
CODE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| <?PHP
header('Content-Type: text/xml');
$info = array(
array('Просто един ефект!','Някакво обяснение към темата ...','2005-11-10'),
array('PHP система за UPLOAD','Някакво обяснение към темата ...','2005-11-09'),
array('PHP, MySQL & Smarty шаблони','Някакво обяснение към темата ...','2005-11-08'),
array('Как да си направим Прелоудър.','Някакво обяснение към темата ...','2005-11-07'),
array('Масиви в PostgreSQL','Някакво обяснение към темата ...','2005-11-06'),
array('Галерия с Photoshop','Някакво обяснение към темата ...','2005-11-05'),
array('Macromedia Flash: Времеви ефекти част3','Някакво обяснение към темата ...','2005-11-04'),
array('Как да пуснем VPN под Линукс ?','Някакво обяснение към темата ...','2005-11-03'),
array('Монтиране на windows дялове таке в Слакуер','Някакво обяснение към темата ...','2005-11-02'),
array('Първи стъпки в MySQL','Някакво обяснение към темата ...','2005-11-01')
);
$xml_file = "<?xml version="1.0" encoding="windows-1251" ?>n";
$xml_file .= "<rss version="2.0">n";
$xml_file .= "<channel>n";
$xml_file .= "<title>IT-PLACE.NET - Уроци и Скриптове на Български Език</title>n";
$xml_file .= "<link>http://www.it-place.net</link>n";
$xml_file .= "<language>bg</language>n";
$xml_file .= "<pubDate>Fri, 02 Dec 2005 20:55:35 GMT</pubDate>n";
foreach ($info as $value)
{
$xml_file .= "<item>n";
$xml_file .= "<title>".htmlspecialchars($value[0])."</title>n";
$xml_file .= "<description>".htmlspecialchars($value[1])."</description>n";
$xml_file .= "<link>http://www.it-place.net/</link>n";
$xml_file .= "<pubDate>".$value[2]."</pubDate>n";
$xml_file .= "</item>n";
}
$xml_file .= "</channel>n";
$xml_file .= "</rss>";
echo $xml_file;
?> |
Като резултат трябва да получите следното (само с два елемента):
CODE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <rss version="2.0">
<channel>
<title>IT-PLACE.NET - Уроци и Скриптове на Български Език</title>
<link>http://www.it-place.net</link>
<language>bg</language>
<pubDate>Fri, 02 Dec 2005 20:55:35 GMT</pubDate>
<item>
<title>Просто един ефект!</title>
<description>Някакво обяснение към темата ...</description>
<link>http://www.it-place.net/</link>
<pubDate>2005-11-10</pubDate>
</item>
<item>
<title>PHP система за UPLOAD</title>
<description>Някакво обяснение към темата ...</description>
<link>http://www.it-place.net/</link>
<pubDate>2005-11-09</pubDate>
</item>
</channel>
</rss> |
За парзването на един такъв
RSS документ е необходим специален парзер, за който може да прочетете в този урок:
RSS: споделяне на новини