我有一个PHP脚本连接到数据库,获取结果并将它们显示为XML文件。
<?php
header('Content-type: text/xml');
mysql_connect('host','user','password');
mysql_select_db('a8273293_blogger');
$sql = "Select * from Messages";
$q = mysql_query($sql) or die(mysql_error());
$result = mysql_query("SELECT COUNT(id) AS total FROM Messages"); // Query to count IDs
$data = mysql_fetch_assoc($result); // Fetch query result
$countNo = $data['total']; // Store count value in var $countNo
$dom = new DOMDocument();
$root = $dom->createElement('root'); // Root element
$dom->appendChild($root);
while($r = mysql_fetch_array($q)){
$user = $dom->createElement('username'); // Define tag name
$userContent = $dom->createTextNode($r['user_username']); // Field
$user->appendChild($userContent); // Add content to tag
$text = $dom->createElement('text');
$textContent = $dom->createTextNode($r['text']);
$text->appendChild($textContent);
$posted_at = $dom->createElement('posted_at');
$posted_atContent = $dom->createTextNode($r['posted_at']);
$posted_at->appendChild($posted_atContent);
$messages = $dom->createElement('messages'); // Container
$messages->appendChild($user); // Add field
$messages->appendChild($text);
$messages->appendChild($posted_at);
// Count
$count = $dom->createElement('result'); // Define tag name
$countContent = $dom->createTextNode($countNo); // Field
$count->appendChild($countContent); // Add content to tag
$root->appendChild($count); // Add blah
$root->appendChild($messages); // Add content to root
}
$xmlString = $dom->saveXML();
echo $xmlString;
?>
这个脚本创建了一个很好的XML文档,但是在脚本完成后我可以将文件转换为XML吗?这是因为我想附加一个Cron作业,以便每天后可以再次收集信息......最终将用于将信息提供给应用程序。
尝试连接或仅创建一个包含我需要的所有数据的新行也更好吗?
例如,如果我有名字,姓氏,标题,我希望从这3个中的所有内容作为XML标记中的一个字符串作为三个姿势,我可以合并它们吗?
此外,如果我只想将我的计数功能输出一次,我可以将它放在while循环之外吗?
我很欣赏这个问题相当冗长,但我不确定特定的部分。
答案 0 :(得分:0)
而不是echo $xmlString;
添加此
$myfile = fopen("output.xml", "w");
fwrite($myfile, $xmlString);
fclose($myfile);
根据您的需要设置output.xml的名称和路径。