Avatar billede snoezel Nybegynder
09. september 2008 - 17:23 Der er 15 kommentarer

RSS feed dato og danske tegn

Hej.

Er der nogen der kan se hvorfor dette RSS ikke udtrækker korrekt dato, og ikke valideres korrekt med ÆØÅ?

Dato i databasen er mmddyyyy.

<? header('Content-type: text/xml');
include_once "config/connection.php";
?>

<rss version="2.0">
<channel>
<title><?=$title?></title>
<description><?=$description?></description>
<link><?=$web_path?></link>
<copyright>Copyright <?=$web_path?></copyright>
<?
$query = $Q("SELECT * FROM `videos` WHERE status=1 ORDER BY `id` DESC LIMIT 30");
while($item = mysql_fetch_array($query)) {

$iname=$item['name'];
$iname_title=str_replace("-"," ",$iname);
$iname_title=strtolower($iname_title);
$iname_title=ucwords($iname_title);
$iname=str_replace("&","&amp;",$iname);
$iname=str_replace("'","",$iname);
$iname=str_replace(" ","-",$iname);


$prefix = $web_path."photo/";
$pp = $item['picture'];
$pp = str_replace(" ","",$pp);
$pp = trim($pp);
$pp = substr($pp,0,4);

if($pp=='http'){
$prefix='';
}


?>

<item>
<title> <?=htmlentities(strip_tags($iname_title)); ?></title>
  <description>&#60;a href="<?=$web_path;?>hosted-<?=$item['id'];?>-<?=$iname;?>">&#60;img src="<?=$prefix.$item['picture'];?>" align="left" height="87" width="130" alt="<?=$item['desc'];?>" border="0" />&#60;/a><?=$item['desc'];?></description>
    <link><?=$web_path;?>hosted-<?=$item['id'];?>-<?=$iname;?></link>
  <pubDate> <?=strftime( "%a, %d %b %Y %T %Z" , $item['date']); ?></pubDate>
</item> 
<? } ?> 

</channel>
</rss>
Avatar billede w13 Novice
09. september 2008 - 17:36 #1
Hvilken dato udtrækkes så, hvis den ikke er korrekt? Og æøå-problemet skyldes konflikter i tegnsættene. Sørg for at alle dine filer bruger samme tegnsæt, f.eks. ISO-8859-1 eller (helst) UTF-8.

Det skal både sættes i koden (under "charset") og i dokumenternes encoding og din database skal ligeledes sættes op til at bruge samme tegnsæt.
Avatar billede snoezel Nybegynder
09. september 2008 - 17:50 #2
Datoen i går, udtrækkes som:

<pubDate> Wed, 15 Apr 1970 21:46:48 EST</pubDate>
Avatar billede snoezel Nybegynder
09. september 2008 - 17:50 #3
...men Æ Ø og Å ser rigtigt ud på siden, det er kun i rss.php den er gal.
Avatar billede w13 Novice
09. september 2008 - 17:53 #4
Prøv at rette:

<?=strftime( "%a, %d %b %Y %T %Z" , $item['date']); ?>

til:

<?=$item['date']); ?>

Hvordan skrives datoer så?
Avatar billede snoezel Nybegynder
09. september 2008 - 18:06 #5
Så ser den sådan her ud:

<pubDate> 09082008</pubDate>
Avatar billede w13 Novice
09. september 2008 - 18:08 #6
Hvad er feltets type i databasen?
Avatar billede w13 Novice
09. september 2008 - 18:08 #7
Datofeltet altså.
Avatar billede snoezel Nybegynder
09. september 2008 - 18:36 #8
Datatype:varchar(15) Collation: latin1_general_ci
Avatar billede w13 Novice
09. september 2008 - 18:54 #9
Ok, du bør vel sætte datatypen til Datoformat i stedet.
Avatar billede snoezel Nybegynder
09. september 2008 - 19:11 #10
Tror så bare det vil gå ud over resten af siden, da der benyttes forskellige koder til udtrækning af dato fra db, eks:
$new_date = substr($date,0,3);
if($new_date=="200") {

$month=substr($date,4,-2)."-";
$day=substr($date,6)."-";
$year=substr($date,0,-4);

} else {

$month=substr($date,0,-6)."-";
$day=substr($date,2,-4)."-";
$year=substr($date,4);
}

$date_val=$month.$day.$year;

Men det må vel kunne lade sig gøre at få korrekt dato med nedenstående?

<?=strftime( "%a, %d %b %Y %T %Z" , $item['date']); ?>
Avatar billede w13 Novice
09. september 2008 - 19:28 #11
Skal det stå ligesom nu, bare med den rigtige dato? Og hvad så med tiden, der jo ikke er gemt?

Eller hvordan skal datoen vises?
Avatar billede pidgeot Nybegynder
09. september 2008 - 19:36 #12
(Bare supplerende oplysninger, følger ikke med)

Datoen skal være i RFC 822-format (eks. Wed, 02 Oct 2002 13:00:00 GMT), så dit oprindelige formatstreng er korrekt - men den forstår ikke dens input. Det hænger også godt sammen, i og med at strftime skal tage mod et Unix timestamp - hvilket er antallet af sekunder siden 1. januar 1970 00:00:00 UTC.

...mangler du i øvrigt ikke en XML-prolog?
Avatar billede snoezel Nybegynder
09. september 2008 - 19:45 #13
pidgeot...Hvordan tilføjer jeg den (prolog)?
Avatar billede snoezel Nybegynder
09. september 2008 - 19:46 #14
Jo tiden er gemt, den viser jo dette nu, blot med forkert dag, måned,år

<pubDate> Wed, 15 Apr 1970 21:46:48 EST</pubDate>
Avatar billede snoezel Nybegynder
10. september 2008 - 17:32 #15
Andre bud? :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester