我想在php(正确编码)中创建一个有效的xml文件,将数据从在线数据库导出到iphone
请告诉我它的编码...因为我是php新手...不太了解:(
请帮助我:(
我现在使用的代码如下:
<?php
// Èdition du dÈbut du fichier XML
$xml .= '<?xml version=\"1.0\" encoding=\"UTF-8\"?>';
$sml .= '<channel>';
$xml .= '<title>Infonul</title>';
$xml .= '<link>aaa</link>';
$xml .= '<description>aaa</description>';
// connexion a la base (mettre ‡ jour le mdp)
$connect = mysql_connect('...-12','...','...');
/* selection de la base de donnÈe mysql */
mysql_select_db('...');
// selection des 20 derniËres news
$res=mysql_query("SELECT u.display_name as author,p.post_date as date,p.comment_count as commentCount, p.post_content as content,p.post_title as title FROM wp_posts p, wp_users u WHERE p.post_status = 'publish' and p.post_type = 'post' and p.post_author = u.id ORDER BY p.id DESC LIMIT 0,20");
// extraction des informations et ajout au contenu
while($tab=mysql_fetch_array($res)){
$title=$tab[title];
$author=$tab[author];
$content=$tab[content]; //html stuff
$commentCount=$tab[commentCount];
$date=$tab[date];
$xml .= '<item>';
$xml .= '<title>'.$title.'</title>';
$xml .= '<content><![CDATA['.$content.']]></content>';
$xml .= '<date>'.$date.'</date>';
$xml .= '<author>'.$author.'</author>';
$xml .= '<commentCount>'.$commentCount.'</commentCount>';
$xml .= '</item>';
}
// Èdition de la fin du fichier XML
$xml .= '</channel>';
$xml = utf8_encode($xml);
echo $xml;
// Ècriture dans le fichier
if ($fp = fopen("20news.xml",'w'))
{
fputs($fp,$xml);
fclose($fp);
}
//mysql_close();
&GT;
但是这段代码有一些错误
答案 0 :(得分:0)
向iPhone提供XML内容的最佳方式可能就是使用plist。
plist文件(filename.plist)实际上只是一种XML格式,但是以一种特殊的方式。它看起来像这样:
<plist version="1.0">
<array>
<dict>
<key>title</key>
<string>Angry Cat</string>
<key>fileName</key>
<string>cat_angry1.caf</string>
<key>fileArray</key>
<array>
<dict>
<key>fileName</key>
<string>cat_angry1.caf</string>
</dict>
</array>
<key>icon</key>
<string>icon1.png</string>
<key>buttonIndex</key>
<integer>0</integer>
</dict>
</array>
</plist>
所以你需要做的就是在php中输出正确的标题:
header("Content-type: text/xml");
echo "<?xml version=\"1.0\"?>";
并将数据库输出为与上述格式类似的格式。
从那里你可以使用NSURLConnection
下载plist并使用类似教程的内容:http://iphoneincubator.com/blog/data-management/reading-and-writing-plists来阅读plist格式。 :)
发布代码后更新
您的代码存在一些问题。首先,在第5行,$sml .= '<channel>';
它应该是$xml...
。数组应始终放在引号中。这是错误的:$tab[commentCount]
它应该是$tab["commentCount"]
只是因为有任何常量命名相同。
在顶部,您有$xml .= '...
。虽然这可能有用,但我以前从未遇到过它。只需在所有代码行之前尝试顶部$xml = ''
。然后在尝试向其追加字符串之前初始化变量。
希望其中一些有效。如果没有这些问题那么请你发布文件的OUTPUT。或者你得到的任何php错误/ mysql错误,它可能与此有关。