我正在学习来自Google的两个教程:
http://code.google.com/apis/maps/articles/phpsqlgeocode.htmlhttp://code.google.com/apis/maps/articles/phpsqlajax_v3.html createmap
我有第一个教程工作正常,它的地理编码几个数据库地址和保存lat/lng结果。
我在第二个教程中遇到了一点麻烦,调用结果并创建地图。首先,遵循这些教程对数千个地址进行地理编码并创建地图是否正确?
我已经跟随教程到页面的底部,但有一些错误,第一个是这个:
警告:无法修改报头信息-报头已由(输出开始于/home/medicom/public_html/映射/wp-content/主题/违约/header。php: 8)在/home/medicom/public_html/映射/wp-content/主题/违约/header。php第134行
第134行是这样的:
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'address="' . parseToXML($row['address']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo 'type="' . $row['type'] . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
我如何纠正这个?我正在工作的页面是这个http://www.mediwales.com/mapping
更新:这似乎是有问题的代码:
<?php
require("phpsqlgeocode_dbinfo.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can''t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT * FROM _health WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'address="' . parseToXML($row['address']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo 'type="' . $row['type'] . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
?>
是否有替代上述header()
的方案?
我刚刚遇到,并修复了这个问题!
教程中呈现xml文件(http://bit.ly/uVTqoh)的php文件必须是它自己的。
除了教程中的代码片段外,不应该有任何其他内容;不要试图将它与任何html放在一起。header
向客户端发送一个原始的http头,如果已经定义了一些东西,那么你可以看到浏览器一定会感到困惑。
然后,当您在GDownloadURL
函数中引用.php文件时,它从该脚本输出的xml中提取信息。挖?
header()
函数应该在任何内容被打印出来之前被调用。
所以,在调用header
之前,检查你没有echo
调用任何东西