我正在尝试遍历我的MySQL数据并为我的XML清理它,但我试图以最有效的方式做到这一点。以下是我的代码。此代码仅清除一个字段CompanyName
如果可能的话,我想清除所有8个字段。
header("Content-type: text/xml");
$SQL_query = "SELECT * FROM COMPANYINFO ORDER BY CompanyName DESC";
$resultID = mysql_query($SQL_query, $linkID) or die("Data not found.");
$xml_output = "<?xml version=\"1.0\"?>\n";
$xml_output .= "<markers>\n"; w
for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){
$row = mysql_fetch_assoc($resultID);
// Escaping illegal characters
$row['CompanyName'] = str_replace("&", "&", $row['CompanyName']);
$row['CompanyName'] = str_replace("<", "<", $row['CompanyName']);
$row['CompanyName'] = str_replace(">", ">", $row['CompanyName']);
$row['CompanyName'] = str_replace("\"", """, $row['CompanyName']);
$xml_output .= "\t\t<marker name='.$row['CompanyName']."' address='".$row['Address_1']."' phone='".$row['Phone']."' lat='".$row['Lat_Info']."' lng='".$row['Long_Info']."' county='".$row['County']."'/>\n";
}
$xml_output .= "</markers>";
echo $xml_output;
答案 0 :(得分:6)
运行您需要通过htmlspecialchars()
放入XML的任何字符串,您应该没问题。
关于处理结果,您可以使用foreach
循环来遍历数组。
放在一起,你得到:
foreach($row as $column) {
$row[$column] = htmlspecialchars($column);
}
答案 1 :(得分:0)
检查htmlspecialchars功能。
答案 2 :(得分:0)
怎么样:
$row = mysql_fetch_assoc($resultID);
$row = array_map('htmlentities', $row);
$xml_output .= "\t\t<marker name='.$row['CompanyName']."' address='".$row['Address_1']."' phone='".$row['Phone']."' lat='".$row['Lat_Info']."' lng='".$row['Long_Info']."' county='".$row['County']."'/>\n";