0

我正在关注谷歌的两个教程:

http://code.google.com/apis/maps/articles/phpsqlgeocode.html http://code.google.com/apis/maps/articles/phpsqlajax_v3.html#createmap

我的第一个教程工作正常,它对几个数据库地址进行地理编码并保存 lat/lng 结果。

我在第二个教程中遇到了一些麻烦,调用结果并创建地图。首先,这些是对数千个地址进行地理编码和创建地图的正确教程吗?

我已经按照教程一直到页面底部,但有一些错误,第一个是:

警告:无法修改标头信息 - 标头已由 /home/medicom/public_html/mapping/wp- 中的(输出开始于 /home/medicom/public_html/mapping/wp-content/themes/default/header.php:8)发送第 134 行的 content/themes/default/header.php

第 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('<','&lt;',$htmlStr); 
$xmlStr=str_replace('>','&gt;',$xmlStr); 
$xmlStr=str_replace('"','&quot;',$xmlStr); 
$xmlStr=str_replace("'",'&#39;',$xmlStr); 
$xmlStr=str_replace("&",'&amp;',$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()

4

2 回答 2

0

header()应在打印出任何内容之前调用函数。

echo所以,在调用之前检查你没有做任何事情header

于 2011-11-07T09:54:20.857 回答
0

我刚刚遇到,并解决了这个问题!

教程中呈现 xml 文件 (http://bit.ly/uVTqoh) 的 php 文件必须是它自己的。

除了教程中的那个片段之外,不应该有其他任何东西;不要尝试将其与任何 html 一起插入。header向客户端发送一个原始的 http 标头,如果已经定义了某些内容,那么您可以看到浏览器一定会感到困惑。

然后,当您在GDownloadURL函数中引用 .php 文件时,它会从该脚本输出的 xml 中提取信息。挖?

于 2011-11-14T21:56:23.603 回答