Toon posts:

RSS feed werkt wel onder Firefox, maar niet onder IE7.0

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo tweakers

Ik heb een raar probleem, ik heb een rss feed, alleen onder Firefox werkt die wel goed, maar onder IE7.0 dus niet. Kan iemand mij vertellen hoe dit kan en of dit is op te lossen :
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
<?php
mysql_connect("local","name","ww"); 
mysql_select_db("db") or die ("Fout, kan de database niet openen"); 

// meta-info
header ("Content-Type: application/rss+xml; charset=UTF-8");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
echo "<rss version=\"2.0\"
           xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
           xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"
           xmlns:sy=\"http://purl.org/rss/1.0/modules/syndication/\">";

// channel info
echo "<channel>";
echo "<title>Neerkant op het Net</title>";
echo "<link>http://www.neerkant.info</link>";
echo "<description>Alle informatie uit het dorp Neerkant</description>";
echo "<language>Nl-nl</language>";

// mysql query

$result = mysql_query ("SELECT *, DATE_FORMAT(date,\"%d-%m-%Y\") FROM nieuws WHERE aktief='on' ORDER BY date DESC LIMIT 0,5");

// loop results

for ($i=0; $i <= mysql_num_rows($result); $i++) {
$array = mysql_fetch_array ($result);
    $id                = $array['id'];
    $date              = $array['date'];
    $title             = htmlspecialchars($array['title']);
    $text              = htmlspecialchars($array['text']);
   
    echo "<item>";
    echo "<title>".$title."</title>";
    echo "<dc:creator>Geplaatst op ".$date."</dc:creator>";
    echo "<link>http://www.neerkant.info/index.php?pageId=18&amp;id=".$id."</link>";
    echo "<description>".$text."</description>";    
    echo "</item>";

}
   
// close channel and rss
echo "</channel>";
echo "</rss>";

// optional


?>

Alvast bedankt voor jullie medewerking

Verwijderd

wat houdt "onder IE 7 werkt hij niet goed" in? Wat zijn de (fout)meldingen? En zet je code even tussen [code] tags.

Verwijderd

Topicstarter
Sorry, is de eerste keer dat ik iets plaatst hier, maar ik heb het al veranderd

De foutcode die ik krijg onder IE 7.0 is :

Deze feed kan niet worden weergegeven

Er is een ongeldig teken gevonden in de tekstinhoud.
regel: 6 teken: 14

In zijn carri

dus hij kan dus geen tekens weergeven zoals : è

  • Blackbird-ce
  • Registratie: September 2005
  • Laatst online: 06-10 23:35
RSS volgt XML 1.0, waarbij alle speciale tekens werden encode toch?
Weet je zeker dat de é ge-encode wordt doorgegeven?

Verwijderd

als je de eerste [code] tag veranderd in [code=php] dan krijgen we ook nog mooie kleurtjes :)

Je kunt inderdaad niet zomaar rare tekens in een RSS feed stoppen. Hier een stukje code wat je probleem oplost (ditzelfde probleem heb ik laatst ook gehad namelijk):

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function clean_string_input($input) {
    $search = array('/[\x60\x82\x91\x92\xb4\xb8]/i',            // single quotes
                           '/[\x84\x93\x94]/i',                        // double quotes
                           '/[\x85]/i',                                // ellipsis ...
                           '/[\x00-\x0d\x0b\x0c\x0e-\x1f\x7f-\x9f]/i');    // all other non-ascii
    
    $replace = array('\'', '"',  '...', '');

    return preg_replace($search,$replace,$input);
}
?>

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11 15:46

OkkE

CSS influencer :+

Werkt een htmlentities() niet?

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Ja, dat werkt. Alle non-ascii tekens wegknikkeren is natuurlijk geen mooie oplossing.

{signature}


Verwijderd

Topicstarter
Regel 6 veranderd in :

PHP:
1
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";


en nu pakt hij het wel gewoon.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

OkkE schreef op donderdag 24 mei 2007 @ 14:04:
Werkt een htmlentities() niet?
Nee, xml definieert geen andere named entities dan &amp; &gt; &lt; en &quot;
Verwijderd schreef op donderdag 24 mei 2007 @ 14:51:
Regel 6 veranderd in :

PHP:
1
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";


en nu pakt hij het wel gewoon.
totdat je een karakter hebt dat niet in ISO-8859-1 voorkomt ;)

Intentionally left blank

Pagina: 1