skrev Henrik Glensbo:
> Skal koden se sådan ud eller skal de alle være .=??
>> $data = '<item>';
>> $data .= '<title>' .$linkText.'</title>';
>> $data .= '<link>'.$rss_url.'</link>';
>> $data .= '</item>';
>>
> Kan du lave en echo og få et resultat af $fp?
>
>> $fp = fopen('inc/item.php', 'r+') die('Kunne ikke åpne fila');
>
> Er alle rettigheder sat på den mappe der skal åbnes og skrives til?
>
>> fwrite($fp, $data) die('Kunne ikke skrive til fila');
>> fclose($fp) die('kunne ikke lukke fila');
>>
> God arbejdslyst og lad os høre hvad du finder ud af
>
>
Her er et par eksempler som virker. Det første eksemplet oppdaterer RSS
Feed kilden index.xml ved hjelp av et skjema. (Det siste eksemplet
oppdaterer RSS Feed lista ved hjelp av en tabell i MySQL databasen)
========================================================================
HTML Skjemaet:
**************
echo $html = '
<h1>Velkommen til admin, '. $username .'</h1>
<h3>Legg til ny oppføring i RSS lista</h3>
<form action="index.php?menu=login" method="post">
<p><strong>URL</strong><br />
<input type="text" name="rss_url" size="32" />
</p>
<p>
<strong>Lenke tekst</strong><br />
<input type="text" name="linkText" size="32" />
</p>
<p>
<input type="submit" name="submit_rss" value="Oppdater" />
</p>
</form>
';
I katalogen inc/ ligger item.php som er der nye lenker blir oppdatert.
**********************************************************************
index.xml ligger i root katalogen til serveren
Her er PHP koden for å hente inn eksisterende data fra item.php
og legge til ny data først i fila, slik at nyeste data havner
øverst/først i RSS feed menyen
**********************************************************************
// ***************************************************************
// Oppdater RSS fil
// ***************************************************************
if(isset($_POST['submit_rss'])){
$rss_url = $_POST['rss_url'];
$linkText = $_POST['linkText'];
$data = '<item>';
$data .= '<title>' .$linkText. '</title>';
$data .= '<link>'.$rss_url.'</link>';
$data .= '</item>';
// Oppdater item.php med nye oppføringer
// --------------------------------------
$filnavn = 'inc/item.php';
$fp = fopen($filnavn, "r");
if($fp) {
$eksisterende_data = file_get_contents($filnavn);
fclose($fp);
// Fordi jeg ønsker at oppdateringer skal skje i begynnelsen
// av fila har jeg laget dette;
// -----------------------------------------------------------
$fp = fopen($filnavn,'w+');
$oppdaterTekst = $data . $eksisterende_data;
if(fwrite($fp, $oppdaterTekst) === false) {
echo "Kan ikke skrive til fila";
}
fclose($fp);
} else {
die ('Kan ikke åpne fila');
}
// Oppdater index.xml
// -------------------
// Først skriv begynnelsen av xml fila
$xmlstring = '<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Min NKI RSS</title>
<link>
http://localhost/~karl/nki/
';
// Hent inn innhold fra item.php
$xmlstring .= file_get_contents('inc/item.php');
// Avslutt xml fil innhold
$xmlstring .= '</channel>
</rss>';
// Write xml file for RSS feed
$filename = "index.xml";
file_put_contents($filename, $xmlstring);
// Ikke fortsett å laste siden. Avslutt her
return false;
}
// **************************************************
// Bruk av MySQL database oppføringer i RSS Feed
// **************************************************
// kildefil for RSS heter feed.xml og ligger i root katalogen
// Taken from
http://www.earn-web-cash.com/2008/02/14/create-rss-feed-php/
*************************************************************************
$xmlString = '<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>KAOS Blog - RSS</title>
<link>
http://localhost/~karl/rss/
';
// Connect and select database
$connect = mysql_connect("localhost","brukenavn","passord");
$selectDB = mysql_select_db("page");
// Select 10 latest records from content table. List
// the result with latest article first. (revers order sort by ID)
$sql = "SELECT cid, header FROM content ORDER BY cid DESC LIMIT 10";
$result = mysql_query($sql);
// Get new items for the RSS feed
while ($row = mysql_fetch_array($result)) {
$cid = $row['cid'];
$xmlString .= ' <item>
<title>' . $row['header'] . '</title>
<link>
'>http://localhost/~karl/rss/index.php?articleID='.$cid.'
</item>
';
}
$xmlString .= '</channel>
</rss>';
// Write xml file for RSS feed
$filename = "feed.xml";
file_put_contents($filename, $xmlString);
// Begge disse 2 eksemplene virker under PHP v.5.3.2
Mvh Karl-Arne
--
My Home Pages:
http://www.karl-arne.name/