Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Създаване на RSS документи с DOM API в PHP5
  1. Really Simple Syndication с DOM API в PHP5
     
Автор  plamenSm (06.04.2008 16:35)  съобщение до автора
Погледнат  1484 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (0)  абонирай се за PHP
    Страница 1 / 1

 



RSS (Really Simple Syndication) е технология, която събира на едно място връзки към материали публикувани на различни Интернет сайтове. RSS потока съдържа в себе си заглавие, автор, коментари и връзка към конкретния материал.

В този урок е демонстрирано как можете да използвате PHP5 DOM API за създаване на RSS файлове и канали.

Започваме направо с PHP кода. В него са включени подробни коментари, които разясняват всяка стъпка.

CODE
1
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
// Конструиране на DOMDocument обект, това ще създаде и XML декларация.
// Можем да зададем версията и схемата на кодиране на символите,
// като подадем (в този ред) 2 параметъра на конструктора.

// по подразбиране версията е "1.0"
$pDom = new DOMDocument("1.0", "utf-8");
       
// Тук създаваме главния (root) XML елемент с име "rss". 
$pRSS = $pDom->createElement('rss');

// Със следващия ред добавяме атрибут "version" със стойност "0.91"
$pRSS->setAttribute('version', 0.91);

// Накрая добавяме елемента в основата XML дървото
$pDom->appendChild($pRSS);

// Повтаряме същия процес за да създадем елемент "channel", но този път добавяме елемента
// не като "root", a като поделемент (child) в елемента "rss".

$pChannel = $pDom->createElement('channel');

$pRSS->appendChild($pChannel);

// Следва създаването на основните подлелементи на "channel", тези елементи носят информация
// свързана с RSS файла. Няма да коментираме поотделно всеки елемент, тъй като са еднотипни
// и лесни за разбиране. Разликата с горните редове е, че тук освен името на елемента
// подаваме на функцията createElement() и текстовата стойност.
// По този начин създаваме затворен елемент. Например следващия ред накрая ще генерира: <title>IT-PLACE</title>
$pTitle = $pDom->createElement('title', 'IT-PLACE');
$pLink  = $pDom->createElement('link', ' http://www.it-place.net');
$pDesc  = $pDom->createElement('description', 'MyLinks от българският IT портал');
$pLang  = $pDom->createElement('language', 'bg');


// Този елемент ще има поделементи, затова не подаваме втори параметър на createElement()
$pImage = $pDom->createElement('image');

// Тук просто добавяме създадените елементи в "channel"
$pChannel->appendChild($pTitle);
$pChannel->appendChild($pLink);
$pChannel->appendChild($pDesc);
$pChannel->appendChild($pLang);
$pChannel->appendChild($pImage);

// Създаваме три нови елемента, които носят информация за "image"
$pURL   = $pDom->createElement('url', ' http://it-place.net/it_images/no_picture.gif');
$pTitle = $pDom->createElement('title', 'it-place.net');
$pLink  = $pDom->createElement('link', 'http://www.it-place.net ');

// И ги добавяме в елемент "image"

$pImage->appendChild($pURL);
$pImage->appendChild($pTitle);
$pImage->appendChild($pLink);

// За примера ще създадем масив от 2 MyLiks.

// За реално използване информацията следва да се извлича от базата данни.

$aLatestThreads = array
(
   
array
   
(
       
'title' => "HP UMPC 2133 ще се появи на 7 Април",
       
'link' => 'http://it-place.net/linksystem/341/',       
       
'description' => "Теми: mobile, hardware, новини, разни; Публикувано от bebolinka на 03.04.2008 13:52"
   
),
   
   
array
   
(   
       
'title' => "Ecma Open XML стана ISO/IEC стандарт",
       
'link' => 'http://it-place.net/linksystem/346/',       
       
'description' => "Теми: xml, новини; Публикувано от plamenSm на 03.04.2008 21:17"
   
)

)
;

// Посредством цикъл формираме по един елемент "item" за всяко съобщение
// Това са съобщенията, които RSS потребителя ще види.
foreach ($aLatestThreads as $aThread)
{
   
// Тук няма нищо ново. Създаваме елемент "item", елементите "title", "link" и "description"
    // след което ги подреждаме в DOM дървото.
   
$pItem  = $pDom->createElement('item');
   
$pTitle = $pDom->createElement('title', $aThread['title']);
   
$pLink  = $pDom->createElement('link', $aThread['link']);
   
$pDesc  = $pDom->createElement('description', $aThread['description']);
       
   
$pItem->appendChild($pTitle);
   
$pItem->appendChild($pLink);
   
$pItem->appendChild($pDesc);
   
   
$pChannel->appendChild($pItem);
}

// Указваме чрез HTTP хедър, че съдържанието на резултата е XML
header('Content-type: text/xml');

// Тук просто връщаме генерирания XML.
// Можем да използваме и някой от другите методи на класа DOMDocument. За запис във файл например.
echo $pDom->saveXML();
?>


Резултатът от изпълнението на скрипта е:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8" ?>
<
rss version="2">
<
channel>
<
title>IT-PLACE</title>
<
link>http://www.it-place.net</link>
<
description>MyLinks от българският IT портал</description>
<
language>bg</language>
<
image>
    <
url>http://it-place.net/it_images/no_picture.gif</url>
    <
title>it-place.net</title>
    <
link>http://www.it-place.net</link>
</
image>
<
item>
    <
title>HP UMPC 2133 ще се появи на 7 Април</title>
    <
link>http://it-place.net/linksystem/341/</link>
    <
description>Теми: mobile, hardware, новини, разни; Публикувано от bebolinka на 03.04.2008 13:52</description>
</
item>
<
item>
    <
title>Ecma Open XML стана ISO/IEC стандарт</title>
    <
link>http://it-place.net/linksystem/346/</link>
    <
description>Теми: xml, новини; Публикувано от plamenSm на 03.04.2008 21:17</description>
</
item>
</
channel>
</
rss>

Този пример заедно с Разчитане на RSS файлове чрез SimpleXML в PHP5 ще ви помогнат да създадавате и разчитате RSS файлове с помощта на 2 от новите разширения на PHP5 - класовете DOMDocument и SimpleXMLElement.

Източник: talkphp.com



   


Ключови думи: PHP rss dom API xml PHP5


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008