php in RSS

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pater

Pater

01/07/2005 01:21:00
Quote Anchor link
Ik wil graag nieuwsberichten in een RSS Feed plaatsen met behulp van PHP, maar mijn eerste pogingen zijn mislukt. Heeft iemand ervaring hiermee.

Het probleem is dat .php niet als een xml-bestand herkend wordt, dus ook niet als een RSS Feed. En een .xml wordt niet als php gezien, dus de php wordt dan niet uitgevoerd.
 
PHP hulp

PHP hulp

12/05/2024 17:15:22
 
Winston Smith

Winston Smith

01/07/2005 02:56:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
// database verbinding toevoegen
include_once('database.inc.php');
header('Content-Type: text/xml');
$now_rfc822 = date("r");

$output = <<<XML
<?xml version="1.0" encoding="utf-8" ?>
<rss version="0.92">
    <channel>
        <title>Voorbeeld</title>
        <link>http://localhost</link>
        <description>Voorbeeld speciaal voor Pater</description>
        <language>nl</language>
        <pubDate>$now_rfc822</pubDate>
        <lastBuildDate>$now_rfc822</lastBuildDate>
        <ttl>15</ttl>
XML
;

// verbinding maken met SQL server
$obj = new database;
$obj->connect();
/* tabel is uiteraard jouw tabel (rss of iets dergelijks) */
$sql = "SELECT * FROM `tabel` ORDER BY `id` DESC LIMIT 0,10";
$result = $obj->execute($sql);

while($xml = mysql_fetch_object($result)) {

$title     = htmlspecialchars(utf8_encode($xml->uitTabel1));
$link    = htmlspecialchars(utf8_encode('http://localhost/index.php?page=linkNaarJouwSite&id=' . $xml->id));
$text = <<<TEXT
    <P>Er is een nieuwsbericht toegevoegd aan de site </P>
    <P>Het nieuwsbericht val in de categorie:<B> $xml->categorie </B> en betreft het volgende:
    <B>$xml->onderwerp</B></P>
    <P>
        Datum: <B> $xml->date </B><BR />
        Bericht: <B> $xml->bericht </B><BR />
    </P>
    <P>
        Lees verder op: <A href="$link" target="_new"><B> http://localhost</B></A>
    </P>
TEXT
;
$desc    = htmlspecialchars(utf8_encode($text));
$output .=<<<XML
<item>
    <title>$title</title>
    <link>$link</link>
    <description>$desc</description>
</item>
XML
;
}


$output .= '</channel></rss>';
print $output;
?>


Dit script haalt stukken tekst uit je database en plaatst die in een rss-bestand. Het invoegen in de database moet geen probleem zijn neem ik aan?

Deze had ik toevallig nog liggen, heb hem wel een beetje bewerkt. Met een beetje PHP kennis moet je er wel uitkomen neem ik aan?
Sorry voor het weinige commentaar overigens; had het voor mezelf geschreven ;)

edit: Opslaan als .php bestand
Gewijzigd op 01/07/2005 03:04:00 door Winston Smith
 
Pater

Pater

01/07/2005 13:05:00
Quote Anchor link
Ik ben een beginnende PHPer, dus bij deze nog enkele vragen:

-Hoe ziet de RSS reader dat het hier om een xml-bestand gaat. Via de header?
-Waarom staan de xml-gedeeltes tussen <<<XML ….. XML?
-Waarom moet ik een verbinding maken met de SQL server? Ik heb toch al een verbinding met de database.
-Kan ik (als dan de $obj zou vervallen) ook $rel = mysql_query($sql) gebruiken i.p.v. $result = $obj->execute($sql)
-Ik wil een array uit de db halen en daar doorheel loopen. Kan ik dan $row[id] gebruiken i.p.v. $xml->id
-vanwaar de $text-variabele en waarom staat deze tussen <<<text … text

Alvast bedankt.
 
Winston Smith

Winston Smith

01/07/2005 23:35:00
Quote Anchor link
- Inderdaad via header('Content-Type: text/xml');

- Dat is een syntax waarmee je wat makkelijker kan typen: je hoeft bijvoorbeeld niet " te escapen

- Hoeft ook niet als die verbinding er al is (als je een permanente verbinding hebt met mysql_pconnect())

- Dat zou inderdaad moeten lukken ja

- Ook dat kan, doe dan wel $row = mysql_fetch_array()

- Die tekst komt in de RSS reader, en hij staat tussen <<<TEXT omdat dat hetzelfde is als je tweede vraag. Net iets makkelijker dus ;)

Geen dank :)
Gewijzigd op 01/07/2005 23:35:00 door Winston Smith
 
Pater

Pater

19/07/2005 22:50:00
Quote Anchor link
Kasper: Ik heb jouw script aangepast, maar hij werkt nog niet. In ieder geval niet op de RSS readers, die standaard in FF en Opera meegeleverd zijn.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
// database verbinding toevoegen
include_once('connect_nuuts.inc');
header('Content-Type: text/xml');
$now_rfc822 = date("r");

$output = <<<XML
<?xml version="1.0" encoding="utf-8" ?>
<rss version="0.92">
    <channel>
        <title>Mofert.nl RSS Feed</title>
        <link>http://www.mofert.nl</link>
        <description>Nuuts euver Mofert</description>
        <language>li</language>
        <pubDate>$now_rfc822</pubDate>
        <lastBuildDate>$now_rfc822</lastBuildDate>
        <ttl>15</ttl>
XML
;

// verbinding maken met SQL server
$obj = new database;
$obj->connect();
/* tabel is uiteraard jouw tabel (rss of iets dergelijks) */
$sql = "SELECT * FROM nuuts ORDER BY id DESC LIMIT 0,10";
$result = $obj->execute($sql);

while($xml = mysql_fetch_object($result)) {

$title     = htmlspecialchars(utf8_encode($xml->titel));
$link    = htmlspecialchars(utf8_encode('http://www.mofert.nl/nuutsberich.php?id=' . $xml->id));
$text = <<<TEXT
    <P>Er is een nieuwsbericht toegevoegd aan de site </P>
    <P>Het nieuwsbericht valt in de categorie:<B> $xml->categorie </B> en betreft het volgende:
    <P>
        Datum: <B> $xml->ts_pub </B><BR />
        Bericht: <B> $xml->berich </B><BR />
    </P>
    <P>
        Lees verder op: <A href="$link" target="_new"><B> http://www.mofert.nl</B></A>
    </P>
TEXT
;
$desc    = htmlspecialchars(utf8_encode($text));
$output .=<<<XML
<item>
    <title>$title</title>
    <link>$link</link>
    <description>$desc</description>
</item>
XML
;
}


$output .= '</channel></rss>';
print $output;
?>


De locatie is http://www.mofert.nl/rss.php

Kan iemand een kijken wat ik fout heb gedaan?
 

20/07/2005 00:12:00
Quote Anchor link
als je van de php extensie afwilt dan doe je dat met rewrite engine regels in een .htaccess file:

RewriteEngine On
RewriteRule rss.xml$ rss-script.php

ff uit het hoofd.
 
Pater

Pater

20/07/2005 08:02:00
Quote Anchor link
->Rene
Kun je een beetje meer uitlef geven a.u.b. Ik ben niet erg ervaren met dit soort dingen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.