php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #28339 simplexml_load_string chokes on " "
Submitted: 2004-05-09 21:29 UTC Modified: 2004-05-09 23:58 UTC
From: cwood at austin dot rr dot com Assigned:
Status: Not a bug Package: SimpleXML related
PHP Version: 5.0.0RC2 OS: Mac OS X 10.2.8
Private report: No CVE-ID: None
 [2004-05-09 21:29 UTC] cwood at austin dot rr dot com
Description:
------------
When trying to load a string containing an HTML-encoded 
non-breaking space (" ") with 
simplexml_load_string, I get the following warning:

Warning:  Entity: line 14: error: Entity 'nbsp' not 
defined in /Library/WebServer/Documents/simple.php on 
line 11
 
But other HTML-escaped characters like > and < 
make it through fine.

Reproduce code:
---------------
<?php
$xmlstr = <<<XML
<?xml version='1.0'?>
<rss>
<channel>
<item>
 <title>This is the title</title>
 <link>http://globelogger.com</link>
 <description>This&nbsp;is the description</description>
</item>
</channel>
</rss>
XML;

$xml = simplexml_load_string(utf8_encode($xmlstr)); 
foreach($xml->channel->item as $item) { 
echo "<b><a href=".$item->link.">".$item->title."</a></b><br>".$item->description."<p>";
}
?>

Expected result:
----------------
<b><a href=http://globelogger.com>This is the title</
a></b><br>This is the description<p>

Actual result:
--------------
Warning:  Entity: line 7: error: Entity 'nbsp' not 
defined in /Library/WebServer/Documents/test.php on 
line 15
 
 Warning:   This?is the description in /Library/
WebServer/Documents/test.php on line 15
 
 Warning:                          ^ in /Library/
WebServer/Documents/test.php on line 15
 
 Warning:  Invalid argument supplied for foreach() in /
Library/WebServer/Documents/test.php on line 16

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-05-09 23:53 UTC] amt@php.net
&nbsp; is not a defined XML entity. In XML, you can only 
use &lt;, &gt;, &amp;, &quot; and &apos;. For other 
entities you must use numeric character references. See:

http://www.w3.org/TR/REC-xml/#syntax
 [2004-05-09 23:58 UTC] cwood at austin dot rr dot com
DOH! Thanks. PHP rocks.
 [2004-05-18 08:50 UTC] becharakordahi at hotmail dot com
I am a student learning php and xml .
And I have difficulty by resolving some problems such as

when I use "simplexml_load_string()" function 
I have this error: 

Fatal error: Call to undefined function: simplexml_load_string() in c:\inetpub\wwwroot\E_Learning\PHP\tryout\tt.php on line 14
this is the code i try :
<?php
$string = <<<XML
<?xml version='1.0'?> 
<document>
<title>Forty What?</title>
<from>Joe</from>
<to>Jane</to>
<body>
  I know that's the answer -- but what's the question?
</body>
</document>
XML;

$xml = simplexml_load_string($string);

var_dump($xml);
?> 

how can I resolve this problem
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Mar 28 18:01:29 2024 UTC