PHP xml rss keine item ausgabe
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktivierung
angeben
arg http
ausgabe
auslese
befinden
code
datei
deklaration
fehler
file
format
funktioniert code
gold
http
item
probier
quatsch
url
verzeichnis
-
Hallo ich habe folgenen Code der auf localhost wunderbar funktioniert (er gibt news im RSS Format aus) und jetzt keine Dateien mehr liest(also keine News mehr ausgibt):
123456789101112131415echo
'<?xml version="1.0" encoding="ISO-8859-1" ?><rss version="2.0" ><channel><title>CaptainE1221</title><link>http://captaine1221.tk</link><description>Dies sind die News vom Youtuber CaptainE1221</description><language>de-de</language><copyright>2008-2013 by Captaine1221</copyright></channel>'
;
$x
= 0;
$handle
= opendir(
"news"
);
while
(false !== (
$file
= readdir(
$handle
))) {
if
(
$file
!=
"."
&&
$file
!=
".."
) {
$x
++;
}
}
while
(
file_exists
(
"news/"
.
$x
.
".txt"
)){
$news
=
file_get_contents
(
"news/"
.
$x
.
".txt"
);
$arg
=
explode
(
"|"
,
$news
);
echo
"<item><title>"
.
$arg
[0].
"</title><link>http://captaine1221.lima-city.de/?news</link><description>"
.
$arg
[1].
"</description></item>"
;
$x
--;
}
echo
'</channel></rss>'
;
In den Verzeichnis news befinden sich datei von 1.txt,2txt,3.txt,...
Bei Fehler Aktivierung passiert nichts.
Die Datei die ich auslesen möchte sieht so aus:
Website Eröffnung|Die Website wurde erfolgreich eröffnet|22.07.2013
Was ist mein Fehler?
Beitrag zuletzt geändert: 23.7.2013 11:31:50 von captaine1221 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
als erstes speicher deine dateien als "UTF-8 ohne BOM" und zwar alle
dann in deinem Code die XML encoding Deklaration encoding="UTF-8" :
dein script funktioniert !
echo '<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" ><channel><title>CaptainE1221</title><link>http://captaine1221.tk</link><description>Dies sind die News vom Youtuber CaptainE1221</description><language>de-de</language><copyright>2008-2013 by Captaine1221</copyright></channel>';
auch UTF-8 angeben, dann kannste dir den quatsch mit "ü" etc sparen.
in deinen "1.txt" schreibste dann ganz normal "ä" "ö" "ü" etc
und natürlich auch auf der Homepage
Gruss
Beitrag zuletzt geändert: 22.7.2013 16:58:40 von n0tiert -
gold richtiog @n0tiert ;)
... Was ist mein Fehler?
außer was schon notiert ist, hast du auch noch einen rss-strukturfehler. probier's mal so (hier zum sehen)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849<?php
// czibere.lima-city.de/_forum/captaine1221/php-xml-rss-keine-item-ausgabe.php
error_reporting
(E_ALL | E_STRICT);
$items
= null;
$eol
= PHP_EOL;
$sort
= SCANDIR_SORT_DESCENDING;
// SCANDIR_SORT_ASCENDING / ..._DESCENDING
$dir
=
'./news'
;
if
(
is_dir
(
$dir
)) {
$files
= scandir(
"./$dir"
,
$sort
);
$fcount
=
count
(
$files
) - 2;
for
(
$i
= 0;
$i
<
$fcount
;
$i
++) {
$content
=
explode
(
'|'
, trim(
$cnt
=
file_get_contents
(
"./$dir/{$files[$i]}"
)));
$items
.= <<< EOT
<item>
<title>{
$content
[0]}</title>
<link>http:
//captaine1221.lima-city.de/?news</link>
<description>{
$content
[1]}</description>
</item>
$eol
EOT;
}
}
else
{
$items
= <<< EOT
<item>
<title>nothing here</title>
<link>http:
//captaine1221.lima-city.de/?$dir</link>
<description>nothing here :(</description>
</item>
$eol
EOT;
}
exit
(<<< EOT
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<rss version=
"2.0"
>
<channel>
<title>CaptainE1221</title>
<link>http:
//captaine1221.tk</link>
<description>Dies sind
die
News vom Youtuber CaptainE1221</description>
<language>de-de</language>
<copyright>2008-2013 by Captaine1221</copyright>
$items
</channel>
</rss>
EOT
);
Beitrag zuletzt geändert: 22.7.2013 23:10:25 von czibere -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage