RSS Feed Picasaweb parsen
Ik ben op zoek naar een RSS-parser voor mijn website. Ik hou mijn foto's bij via picasaweb van google, maar zou graag deze albums op mijn website zien verschijnen. Ik had dus gedacht om hiervoor gebruik te maken van de RSS-feed die picasa automatisch genereert.
Het probleem is echter dat ik geen goede parser vind, en dat de feed wordt gesorteerd op datum 'laatst gewijzigd' en niet op datum van het album. Dit zou ik dus op mijn website zien verschijnen:
Code (php)
1
2
3
4
2
3
4
Datum |Beschrijving |Plaats |Fotograaf |Aantal foto's |link
-------------------------------------------------------------------------------------------
18-08-2007 |1000 Van Zele |Zele |Dorothy Derweduwen|37 |link
15-08-2007 |KVV Cad-Sch |Lier |Rudi Heuninck |42 |link
-------------------------------------------------------------------------------------------
18-08-2007 |1000 Van Zele |Zele |Dorothy Derweduwen|37 |link
15-08-2007 |KVV Cad-Sch |Lier |Rudi Heuninck |42 |link
Dit is de feed waarover ik spreek
Meer info:
* Datum -> wordt gehaald uit <pubdate> tag
* Datum -> formaat "Sat, 18 Aug 2007 07:00:00 +0000" moet omgezet worden naar "dd-mm-YYYY"
* Beschrijving -> wordt gehaald uit <title> tag
* Beschrijving -> formaat "20070818_1000.VAN.ZELE" moet omgezet worden naar 1000 Van Zele (formaat is steeds hetzelfde, dwz: yyyymmdd_Beschrijving)
* Plaats -> wordt gehaald uit <description> tag
* Fotograaf -> wordt gehaald uit <description> tag
* Aantal foto's -> wordt gehaald uit <description> tag
* Link -> wordt gehaald uit <link> tag
Is dit te doen? Zou iemand zich hiervoor willen engageren? Hints, tips?
Alvast bedankt
Gewijzigd op 01/01/1970 01:00:00 door Jan H
simpleXML functies van PHP.
Ik denk dat je wel wat hebt aan de Bij elke parser dat ik reeds geprobeerd heb, moet ik de rss-file opgeven (eindigend op .xml). Ik weer dit enkel niet staan bij mijn picasa-album.
URL naar de feed
Kan iemand het adres v/h .xml bestand achterhalen? Dit lijkt wel een stomme vraag, maar toch moet ik ze stellen ^^
tnx
Ik heb eens wat geGoogled, maar ik kom af en toe de term "Picasa XML Export Path" tegen. Misschien moet je daar even op zoeken. Ik gebruik zelf geen Picasa.
Dit is wat ik al heb
Hier heb ik gebruik van gemaakt. Mijn php-kennis is echter enorm beperkt, en ik zie nu door de bomen het bos niet meer.
Ik kan echter wel leven met de layout die nu geproduceerd wordt. Enkel zou de titel wel weergegeven mogen worden. "Location" -> "Plaats" enzo moet in de hele feed vervangen worden...
dit script zit vast en zeker het één en ander dat je kan gebruiken.
In Webmakerij schreef op 19.08.2007 17:46:
In dit script zit vast en zeker het één en ander dat je kan gebruiken.
ja ik weet het. Dit script heb ik reeds geprobeerd. Maar om de 1 of andere bizarre reden krijg ik dit:
Parse error: syntax error, unexpected T_STRING in /opt/www/***/web/www.aczele.be/testmap/rsstodb.php on line 4
terwijl regel 4 gewoon commentaar is :/
Kijk maar
Gewijzigd op 01/01/1970 01:00:00 door Jan H
Kan je de regels 1 t/m 5 posten.
Code (php)
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
<?php
# -------------------------------------------------------------------
# RSS to DB
# -------------------------------------------------------------------
# Webmakerij, http://webmakerij.markei.nl
# Versie 1.0.1, 18 augustus 2007
# -------------------------------------------------------------------
# Slaat een RSS feed op in een database. Elke item wordt een record
# Mocht een record met dezelfde titel en omschrijving al in de
# database aanwezig zijn dan wordt deze niet toegevoegd.
# RSS to DB is gebouwd voor RSS 2.0, merk op dat RSS 2.0 backwards
# compatible is. Hierdoor kan dit systeem ook overweg met RSS versies
# lager dan 2.0
# -------------------------------------------------------------------
# versie 1.0.1
# - Indien bronrss veld aanwezig is in de tabel zal de
# bron worden opgeslagen
# -------------------------------------------------------------------
# Licentie: GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007
# http://www.gnu.org/licenses/gpl.html
# http://www.gnu.org/licenses/gpl.txt
# -------------------------------------------------------------------
# -------------------------------------------------------------------
# Vereisten: PHP 5.0 of hoger
# MySQL 4.1 of hoger
# MySQLi extensie (PHP)
# DOM extensie (PHP)
# -------------------------------------------------------------------
# RSS specificaties
# -------------------------------------------------------------------
# RSS 2.0 specs http://cyber.law.harvard.edu/rss/rss.html
# RSS 1.0 specs http://web.resource.org/rss/1.0/spec
# RSS 0.92 specs http://backend.userland.com/rss092
# RSS 0.91 specs http://backend.userland.com/rss091
header("Content-Type: text/plain;");
$start_time=explode(' ',microtime());
$start_time=$start_time[1]+$start_time[0];
# CONFIGURARIE
# -------------------------------------------------------------------
# Database
$mysql['host']='mysql-2.priorweb.be';
$mysql['gebruikersnaam']='**';
$mysql['wachtwoord']='**';
$mysql['database']='**';
# Bron RSS (url of bestand)
$bron='http://picasaweb.google.com/data/feed/base/user/atletiekclubzele';
# Doel tabel (MySQL tabel)
$tabel='tabelnaam';
# Globalen
define("NLBR","\r\n");
# DATEBASE CONNECTIE, CONTROLLE EN OPENEN BRON
# -------------------------------------------------------------------
$connectie=mysqli_connect($mysql['host'],$mysql['gebruikersnaam'],$mysql['wachtwoord'],$mysql['database']);
if($connectie==false){exit("Geen database connectie");}else{echo"> Verbonden met database".NLBR;}
$resultaat=mysqli_query($connectie,"SHOW TABLES LIKE '".$tabel."';");
if(mysqli_num_rows($resultaat)==0){exit("Doel tabel bestaat niet");}else{echo"> Doel tabel bestaat".NLBR;}
$resultaat=mysqli_query($connectie,"SHOW COLUMNS FROM ".$tabel." LIKE 'bronrss';");
if(mysqli_num_rows($resultaat)==0){echo"> RSS Bron wordt niet opgeslagen, tabel structuur komt overeen met die van RSS to DB 1.0.0".NLBR;$savebronrss=false;}else{echo"> RSS Bron wordt opgeslagen".NLBR;$savebronrss=true;}
$rss=newDOMDocument;
$rss->preserveWhiteSpace=false;
$resultaat=$rss->load($bron);
if($resultaat==false){exit("Kan bron bestand niet openen");}else{echo"> Bron XML bestand ingelezen".NLBR;}
echoNLBR;
# INLEZEN ELEMENTEN
# -------------------------------------------------------------------
echo"> RSS openen (rss element)".NLBR;
$root=$rss->documentElement;
if($root->tagName!='rss'){exit("Document element is geen rss-element");}
echo"> RSS openen (channel element)".NLBR;
$channel=$root->getElementsByTagName('channel')->item(0);
echo"> Start inlezen van de elementen".NLBR.NLBR;
foreach($channel->childNodesas$item)
{
if($item->nodeType==1)
{
echo"-> Nieuwe element gevonden: ".$item->tagName.NLBR;
if($item->tagName!='item')
{
switch($item->tagName)
{
case'title':echo"--> Titel opgeslagen".NLBR;$titel=$item->nodeValue;break;
default:echo"-->Element niet intressant en overgeslagen".NLBR.NLBR;
}
}
else
{
echo"-->Nieuwe RSS item gevonden".NLBR;
echo"---> Start met inlezen elementen".NLBR;
foreach($item->childNodesas$elementen)
{
if($elementen->nodeType==1)
{
echo"----> Element gevonden: ".$elementen->tagName.NLBR;
switch($elementen->tagName)
{
case'source':
echo"-----> Dit element dient 1 attribuut te hebben. Controleren hierop".NLBR;
if($elementen->hasAttribute('url'))
{
echo"------> Het attribuut bestaat".NLBR;
echo"------> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
echo"------> Attribuut opslaan".NLBR;
$record[$elementen->tagName.'_url']=$elementen->getAttribute('url');
}
else
{
echo"------> Het attribuut kon niet worden gevonden. Element voldoet niet aan eisen. Overgeslagen".NLBR;
}
break;
case'enclosure':
echo"-----> Dit element dient 3 attribuut te hebben. Controleren hierop".NLBR;
if($elementen->hasAttribute('url')AND$elementen->hasAttribute('length')AND$elementen->hasAttribute('type'))
{
echo"------> De attributen bestaan".NLBR;
echo"------> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
echo"------> Attributen opslaan".NLBR;
$record[$elementen->tagName.'_url']=$elementen->getAttribute('url');
$record[$elementen->tagName.'_length']=$elementen->getAttribute('length');
$record[$elementen->tagName.'_type']=$elementen->getAttribute('type');
}
else
{
echo"------> Eén of meerdere van de drie attributen kon niet worden gevonden. Element voldoet niet aan eisen. Overgeslagen".NLBR;
}
break;
case'category':
echo"-----> Dit element kan 1 attribuut hebben. Controleren op attribuut en opslaan".NLBR;
echo"------> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
if($elementen->hasAttribute('domain'))
{
echo"------> Attribuut gevonden".NLBR;
echo"------> Attribuut opslaan".NLBR;
$record[$elementen->tagName.'_domain']=$elementen->getAttribute('domain');
}
else
{
echo"------> Attribuut niet gevonden".NLBR;
}
break;
case'guid':
echo"-----> Dit element kan 1 attribuut hebben. Controleren op attribuut en opslaan".NLBR;
echo"------> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
if($elementen->hasAttribute('isPermaLink'))
{
echo"------> Attribuut gevonden".NLBR;
echo"------> Attribuut opslaan".NLBR;
$record[$elementen->tagName.'_isPermaLink']=$elementen->getAttribute('isPermaLink');
}
else
{
echo"------> Attribuut niet gevonden".NLBR;
}
break;
case'pubDate':
echo"-----> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
echo"-----> Datum/Tijd omzetten naar databaseformaat".NLBR;
$record['datumtijd']=strtotime($record['pubDate']);
$record['datumtijd']=date("Y-m-d H:i:s",$record['datumtijd']);
echo"-----> Datum/Tijd: ".$record['datumtijd'].NLBR;
break;
default:
echo"-----> Geen verdere attributen verplicht. Element opslaan eventuele attributen overslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
break;
}
}
}
if(isset($record['title'])ORisset($record['description']))
{
if(!isset($record['title'])){$record['title']='';}
if(!isset($record['description'])){$record['description']='';}
if(!isset($record['datumtijd'])){$record['datumtijd']='';}
echo"---> Er is een titel en/of beschrijving gevonden, RSS item is goedgekeurd".NLBR;
echo"---> Controleren of title/description al in database voorkomt".NLBR;
$resultaat=mysqli_query($connectie,"SELECT COUNT(id) AS aantal FROM ".$tabel." WHERE title = '".mysqli_real_escape_string($connectie,$record['title'])."' AND description = '".mysqli_real_escape_string($connectie,$record['description'])."';");
$recordset=mysqli_fetch_assoc($resultaat);
if($recordset['aantal']==0)
{
echo"---> Dit item staat nog niet in de database en zal worden toegevoegd".NLBR;
// query bouwen
$sql="INSERT INTO ".$tabel." (";
$sql.="title, ";
$sql.="description, ";
if(isset($record['link'])){$sql.="link, ";}
if(isset($record['author'])){$sql.="author, ;; }
if (isset($record['category'])) { $sql .= "category,"; }
if (isset($record['comments'])) { $sql .= "comments,"; }
if (isset($record['enclosure'])) { $sql .= "enclosure,"; }
if (isset($record['guid'])) { $sql .= "guid,"; }
if (isset($record['pubDate'])) { $sql .= "pubDate,"; }
if (isset($record['source'])) { $sql .= "source,"; }
if (isset($record['source_url'])) { $sql .= "source_url,"; }
if (isset($record['enclosure_url'])) { $sql .= "enclosure_url,"; }
if (isset($record['enclosure_length'])) { $sql .= "enclosure_length,"; }
if (isset($record['enclosure_type'])) { $sql .= "enclosure_type,"; }
if (isset($record['category_domain'])) { $sql .= "category_domain,"; }
if (isset($record['guid_isPermaLink'])) { $sql .= "guid_isPermaLink,"; }
if ($savebronrss == true) { $sql .= "bronrss,"; }
$sql .= "datumtijd)VALUES(";
$sql .= "'" . mysqli_real_escape_string($connectie, $record['title']) . "',";
$sql .= "'" . mysqli_real_escape_string($connectie, $record['description']) . "',";
if (isset($record['link'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['link']) . "',"; }
if (isset($record['author'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['author']) . "',"; }
if (isset($record['category'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['category']) . "',"; }
if (isset($record['comments'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['comments']) . "',"; }
if (isset($record['enclosure'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['enclosure']) . "',"; }
if (isset($record['guid'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['guid']) . "',"; }
if (isset($record['pubDate'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['pubDate']) . "',"; }
if (isset($record['source'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['source']) . "',"; }
if (isset($record['source_url'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['source_url']) . "',"; }
if (isset($record['enclosure_url'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['enclosure_url']) . "',"; }
if (isset($record['enclosure_length'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['enclosure_length']) . "',"; }
if (isset($record['enclosure_type'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['enclosure_type']) . "',"; }
if (isset($record['category_domain'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['category_domain']) . "',"; }
if (isset($record['guid_isPermaLink'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['guid_isPermaLink']) . "',"; }
if ($savebronrss == true) { $sql .= "'" . mysqli_real_escape_string($connectie, $bron) . "',"; }
if ($record['datumtijd'] == '') { $sql .= "NOW()"; } else { $sql .= "'" . mysqli_real_escape_string($connectie, $record['datumtijd']) . "'"; }
$sql .= ");";
$resultaat = mysqli_query($connectie, $sql);
if ($resultaat == true) { echo "--->Itemtoegevoegdaandatabase" . NLBR; } else { echo "--->Konniettoevoegenaandatabase" . NLBR; }
}
else
{
echo "--->Dititemstaatalindedatabase.Overslaan" . NLBR;
}
}
echo "-->EindeRSSitem" . NLBR . NLBR;
}
}
}
echo NLBR . NLBR . NLBR;
echo "EindeXMLRSSbestand:" .$titel . NLBR;
$end_time = explode(' ', microtime());
$total_time = $end_time[0] + $end_time[1] - $start_time;
echo "Totaleparsertijd:".$total_time;
?>
# -------------------------------------------------------------------
# RSS to DB
# -------------------------------------------------------------------
# Webmakerij, http://webmakerij.markei.nl
# Versie 1.0.1, 18 augustus 2007
# -------------------------------------------------------------------
# Slaat een RSS feed op in een database. Elke item wordt een record
# Mocht een record met dezelfde titel en omschrijving al in de
# database aanwezig zijn dan wordt deze niet toegevoegd.
# RSS to DB is gebouwd voor RSS 2.0, merk op dat RSS 2.0 backwards
# compatible is. Hierdoor kan dit systeem ook overweg met RSS versies
# lager dan 2.0
# -------------------------------------------------------------------
# versie 1.0.1
# - Indien bronrss veld aanwezig is in de tabel zal de
# bron worden opgeslagen
# -------------------------------------------------------------------
# Licentie: GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007
# http://www.gnu.org/licenses/gpl.html
# http://www.gnu.org/licenses/gpl.txt
# -------------------------------------------------------------------
# -------------------------------------------------------------------
# Vereisten: PHP 5.0 of hoger
# MySQL 4.1 of hoger
# MySQLi extensie (PHP)
# DOM extensie (PHP)
# -------------------------------------------------------------------
# RSS specificaties
# -------------------------------------------------------------------
# RSS 2.0 specs http://cyber.law.harvard.edu/rss/rss.html
# RSS 1.0 specs http://web.resource.org/rss/1.0/spec
# RSS 0.92 specs http://backend.userland.com/rss092
# RSS 0.91 specs http://backend.userland.com/rss091
header("Content-Type: text/plain;");
$start_time=explode(' ',microtime());
$start_time=$start_time[1]+$start_time[0];
# CONFIGURARIE
# -------------------------------------------------------------------
# Database
$mysql['host']='mysql-2.priorweb.be';
$mysql['gebruikersnaam']='**';
$mysql['wachtwoord']='**';
$mysql['database']='**';
# Bron RSS (url of bestand)
$bron='http://picasaweb.google.com/data/feed/base/user/atletiekclubzele';
# Doel tabel (MySQL tabel)
$tabel='tabelnaam';
# Globalen
define("NLBR","\r\n");
# DATEBASE CONNECTIE, CONTROLLE EN OPENEN BRON
# -------------------------------------------------------------------
$connectie=mysqli_connect($mysql['host'],$mysql['gebruikersnaam'],$mysql['wachtwoord'],$mysql['database']);
if($connectie==false){exit("Geen database connectie");}else{echo"> Verbonden met database".NLBR;}
$resultaat=mysqli_query($connectie,"SHOW TABLES LIKE '".$tabel."';");
if(mysqli_num_rows($resultaat)==0){exit("Doel tabel bestaat niet");}else{echo"> Doel tabel bestaat".NLBR;}
$resultaat=mysqli_query($connectie,"SHOW COLUMNS FROM ".$tabel." LIKE 'bronrss';");
if(mysqli_num_rows($resultaat)==0){echo"> RSS Bron wordt niet opgeslagen, tabel structuur komt overeen met die van RSS to DB 1.0.0".NLBR;$savebronrss=false;}else{echo"> RSS Bron wordt opgeslagen".NLBR;$savebronrss=true;}
$rss=newDOMDocument;
$rss->preserveWhiteSpace=false;
$resultaat=$rss->load($bron);
if($resultaat==false){exit("Kan bron bestand niet openen");}else{echo"> Bron XML bestand ingelezen".NLBR;}
echoNLBR;
# INLEZEN ELEMENTEN
# -------------------------------------------------------------------
echo"> RSS openen (rss element)".NLBR;
$root=$rss->documentElement;
if($root->tagName!='rss'){exit("Document element is geen rss-element");}
echo"> RSS openen (channel element)".NLBR;
$channel=$root->getElementsByTagName('channel')->item(0);
echo"> Start inlezen van de elementen".NLBR.NLBR;
foreach($channel->childNodesas$item)
{
if($item->nodeType==1)
{
echo"-> Nieuwe element gevonden: ".$item->tagName.NLBR;
if($item->tagName!='item')
{
switch($item->tagName)
{
case'title':echo"--> Titel opgeslagen".NLBR;$titel=$item->nodeValue;break;
default:echo"-->Element niet intressant en overgeslagen".NLBR.NLBR;
}
}
else
{
echo"-->Nieuwe RSS item gevonden".NLBR;
echo"---> Start met inlezen elementen".NLBR;
foreach($item->childNodesas$elementen)
{
if($elementen->nodeType==1)
{
echo"----> Element gevonden: ".$elementen->tagName.NLBR;
switch($elementen->tagName)
{
case'source':
echo"-----> Dit element dient 1 attribuut te hebben. Controleren hierop".NLBR;
if($elementen->hasAttribute('url'))
{
echo"------> Het attribuut bestaat".NLBR;
echo"------> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
echo"------> Attribuut opslaan".NLBR;
$record[$elementen->tagName.'_url']=$elementen->getAttribute('url');
}
else
{
echo"------> Het attribuut kon niet worden gevonden. Element voldoet niet aan eisen. Overgeslagen".NLBR;
}
break;
case'enclosure':
echo"-----> Dit element dient 3 attribuut te hebben. Controleren hierop".NLBR;
if($elementen->hasAttribute('url')AND$elementen->hasAttribute('length')AND$elementen->hasAttribute('type'))
{
echo"------> De attributen bestaan".NLBR;
echo"------> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
echo"------> Attributen opslaan".NLBR;
$record[$elementen->tagName.'_url']=$elementen->getAttribute('url');
$record[$elementen->tagName.'_length']=$elementen->getAttribute('length');
$record[$elementen->tagName.'_type']=$elementen->getAttribute('type');
}
else
{
echo"------> Eén of meerdere van de drie attributen kon niet worden gevonden. Element voldoet niet aan eisen. Overgeslagen".NLBR;
}
break;
case'category':
echo"-----> Dit element kan 1 attribuut hebben. Controleren op attribuut en opslaan".NLBR;
echo"------> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
if($elementen->hasAttribute('domain'))
{
echo"------> Attribuut gevonden".NLBR;
echo"------> Attribuut opslaan".NLBR;
$record[$elementen->tagName.'_domain']=$elementen->getAttribute('domain');
}
else
{
echo"------> Attribuut niet gevonden".NLBR;
}
break;
case'guid':
echo"-----> Dit element kan 1 attribuut hebben. Controleren op attribuut en opslaan".NLBR;
echo"------> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
if($elementen->hasAttribute('isPermaLink'))
{
echo"------> Attribuut gevonden".NLBR;
echo"------> Attribuut opslaan".NLBR;
$record[$elementen->tagName.'_isPermaLink']=$elementen->getAttribute('isPermaLink');
}
else
{
echo"------> Attribuut niet gevonden".NLBR;
}
break;
case'pubDate':
echo"-----> Element opslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
echo"-----> Datum/Tijd omzetten naar databaseformaat".NLBR;
$record['datumtijd']=strtotime($record['pubDate']);
$record['datumtijd']=date("Y-m-d H:i:s",$record['datumtijd']);
echo"-----> Datum/Tijd: ".$record['datumtijd'].NLBR;
break;
default:
echo"-----> Geen verdere attributen verplicht. Element opslaan eventuele attributen overslaan".NLBR;
$record[$elementen->tagName]=trim($elementen->nodeValue);
break;
}
}
}
if(isset($record['title'])ORisset($record['description']))
{
if(!isset($record['title'])){$record['title']='';}
if(!isset($record['description'])){$record['description']='';}
if(!isset($record['datumtijd'])){$record['datumtijd']='';}
echo"---> Er is een titel en/of beschrijving gevonden, RSS item is goedgekeurd".NLBR;
echo"---> Controleren of title/description al in database voorkomt".NLBR;
$resultaat=mysqli_query($connectie,"SELECT COUNT(id) AS aantal FROM ".$tabel." WHERE title = '".mysqli_real_escape_string($connectie,$record['title'])."' AND description = '".mysqli_real_escape_string($connectie,$record['description'])."';");
$recordset=mysqli_fetch_assoc($resultaat);
if($recordset['aantal']==0)
{
echo"---> Dit item staat nog niet in de database en zal worden toegevoegd".NLBR;
// query bouwen
$sql="INSERT INTO ".$tabel." (";
$sql.="title, ";
$sql.="description, ";
if(isset($record['link'])){$sql.="link, ";}
if(isset($record['author'])){$sql.="author, ;; }
if (isset($record['category'])) { $sql .= "category,"; }
if (isset($record['comments'])) { $sql .= "comments,"; }
if (isset($record['enclosure'])) { $sql .= "enclosure,"; }
if (isset($record['guid'])) { $sql .= "guid,"; }
if (isset($record['pubDate'])) { $sql .= "pubDate,"; }
if (isset($record['source'])) { $sql .= "source,"; }
if (isset($record['source_url'])) { $sql .= "source_url,"; }
if (isset($record['enclosure_url'])) { $sql .= "enclosure_url,"; }
if (isset($record['enclosure_length'])) { $sql .= "enclosure_length,"; }
if (isset($record['enclosure_type'])) { $sql .= "enclosure_type,"; }
if (isset($record['category_domain'])) { $sql .= "category_domain,"; }
if (isset($record['guid_isPermaLink'])) { $sql .= "guid_isPermaLink,"; }
if ($savebronrss == true) { $sql .= "bronrss,"; }
$sql .= "datumtijd)VALUES(";
$sql .= "'" . mysqli_real_escape_string($connectie, $record['title']) . "',";
$sql .= "'" . mysqli_real_escape_string($connectie, $record['description']) . "',";
if (isset($record['link'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['link']) . "',"; }
if (isset($record['author'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['author']) . "',"; }
if (isset($record['category'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['category']) . "',"; }
if (isset($record['comments'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['comments']) . "',"; }
if (isset($record['enclosure'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['enclosure']) . "',"; }
if (isset($record['guid'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['guid']) . "',"; }
if (isset($record['pubDate'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['pubDate']) . "',"; }
if (isset($record['source'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['source']) . "',"; }
if (isset($record['source_url'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['source_url']) . "',"; }
if (isset($record['enclosure_url'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['enclosure_url']) . "',"; }
if (isset($record['enclosure_length'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['enclosure_length']) . "',"; }
if (isset($record['enclosure_type'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['enclosure_type']) . "',"; }
if (isset($record['category_domain'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['category_domain']) . "',"; }
if (isset($record['guid_isPermaLink'])) { $sql .= "'" . mysqli_real_escape_string($connectie, $record['guid_isPermaLink']) . "',"; }
if ($savebronrss == true) { $sql .= "'" . mysqli_real_escape_string($connectie, $bron) . "',"; }
if ($record['datumtijd'] == '') { $sql .= "NOW()"; } else { $sql .= "'" . mysqli_real_escape_string($connectie, $record['datumtijd']) . "'"; }
$sql .= ");";
$resultaat = mysqli_query($connectie, $sql);
if ($resultaat == true) { echo "--->Itemtoegevoegdaandatabase" . NLBR; } else { echo "--->Konniettoevoegenaandatabase" . NLBR; }
}
else
{
echo "--->Dititemstaatalindedatabase.Overslaan" . NLBR;
}
}
echo "-->EindeRSSitem" . NLBR . NLBR;
}
}
}
echo NLBR . NLBR . NLBR;
echo "EindeXMLRSSbestand:" .$titel . NLBR;
$end_time = explode(' ', microtime());
$total_time = $end_time[0] + $end_time[1] - $start_time;
echo "Totaleparsertijd:".$total_time;
?>
ook de tabel is succesvol aangemaakt in mysql... bizar!
edit: als ik het scriptbestand chmod naar 777, dan krijg ik "HTTP-FOUT 500: INTERNAL SERVER ERROR" :/ verklaren wie verklaren kan :D
Gewijzigd op 01/01/1970 01:00:00 door Jan H
Hier werkt die gewoon. Na ja werken; je RSS feed maakt gebruik van namespaces dus geeft dit problemen.
Webmakerij schreef op 19.08.2007 18:03:
Hier werkt die gewoon. Na ja werken; je RSS feed maakt gebruik van namespaces dus geeft dit problemen.
Namespaces?
Soit, enig idee waarom dit script niet werkt bij mij? Heb nochtans PHP 5 enzo...
Gewijzigd op 01/01/1970 01:00:00 door Jan H