0

我需要从 XML 中获取所有节点。在我尝试使用下面的 PHP 编码之后。这是工作。但我无法<description>从 xml 抓取和图像。

这是来自其他网站的 XML(UTF-8 泰语) http://www.dailynews.co.th/rss/rss.xml

这是我的 PHP 代码:

$Rsssurl_SQL="SELECT * from rss_feed_url"; 
$Rsssurl_RESULT=mysql_db_query($dbname,$Rsssurl_SQL);
while ($Rsssurl_ROW=mysql_fetch_array($Rsssurl_RESULT)) {
$request_url = $Rsssurl_ROW[1];
$xml = simplexml_load_file($request_url) or die("");
foreach($xml->channel->item as $item){
$title = $item->title;   
$content = $item->description;
$date = $item->pubDate;   
$link = $item->link;

/* I use ereg_replace to replace special characters */

$content=ereg_replace("&lt;","<",$content);
$content=ereg_replace("&gt;",">",$content);
$content=ereg_replace("&amp;","&",$content);
$content=ereg_replace("&quot;","\"",$content);
$content=ereg_replace("&#039;","\'",$content);

$title=ereg_replace("&lt;","<",$title);
$title=ereg_replace("&gt;",">",$title);
$title=ereg_replace("&amp;","&",$title);
$title=ereg_replace("&quot;","\"",$title);
$title=ereg_replace("&#039;","\'",$title);
$title=ereg_replace("\'","",$title);
$title=ereg_replace("<","", $title);
$title=ereg_replace(">","", $title);
$title=ereg_replace("&","", $title);
$title=ereg_replace("\"","", $title);
}
}

我可以抓取<title>,<link><pubDate>insert all 到 mySQL。但只有<description>我不能全部抓住(图像和长文本)。

我尝试从许多帮助中搜索并从 W3C 学校阅读。我找不到确切的答案。

请,帮助。谢谢。

4

1 回答 1

0

使用 simplexml 时,您需要将值转换为字符串。试试这个 :

$Rsssurl_SQL="SELECT * from rss_feed_url"; 
$Rsssurl_RESULT=mysql_db_query($dbname,$Rsssurl_SQL);
while ($Rsssurl_ROW=mysql_fetch_array($Rsssurl_RESULT)) {
    $request_url = $Rsssurl_ROW[1];
    $xml = simplexml_load_file($request_url) or die("");
    foreach($xml->channel->item as $item){
        $title = (string) $item->title;   
        $content = (string) $item->description;
        $date = (string) $item->pubDate;   
        $link = (string) $item->link;
    }
}
  • 对不起,我忘记了最后的}。
于 2015-03-01T04:16:20.157 回答