谁能告诉我什么';这个简单的PHP有什么问题

谁能告诉我什么';这个简单的PHP有什么问题,php,Php,正如您所看到的,这个PHP只是在数组中查找名称。 我将这个php文件放在我的xampp根目录中,然后在我的浏览器中键入search.php?query=John,然后它告诉我 此页面包含以下错误: 第1列第2行出错:文档末尾有额外内容 下面是第一个错误之前的页面呈现。 怎么了?您必须初始化变量$query=null代码。请尝试以下操作: <?php header("Content-type: text/xml"); $names = array ( "John Smi

正如您所看到的,这个PHP只是在数组中查找名称。
我将这个php文件放在我的xampp根目录中,然后在我的浏览器中键入search.php?query=John,然后它告诉我
此页面包含以下错误: 第1列第2行出错:文档末尾有额外内容 下面是第一个错误之前的页面呈现。

怎么了?

您必须初始化变量
$query=null代码。

请尝试以下操作:

    <?php
  header("Content-type: text/xml");
  $names = array (
   "John Smith", "John Jones", "Jane Smith", "Jane Tillman",
   "Abraham Lincoln", "Sally Johnson", "Kilgore Trout",
   "Bob Atkinson","Joe Cool", "Dorothy Barnes",
   "Elizabeth Carlson", "Frank Dixon", "Gertrude East",
   "Harvey Frank", "Inigo Montoya", "Jeff Austin",
   "Lynn Arlington", "Michael Washington", "Nancy West" );
if (!$query) {
   $query=$_GET['query'];
}
echo "<?xml version=\"1.0\" ?>\n";
echo "<names>\n";
while (list($k,$v)=each($names)) {
   if (stristr($v,$query)) {
      echo "<name>$v</name>\n";
   }
}
echo "</names>\n";
?>

我认为问题出在-

 <?php
  header("Content-type: text/xml");
  $names = array (
   "John Smith", "John Jones", "Jane Smith", "Jane Tillman",
   "Abraham Lincoln", "Sally Johnson", "Kilgore Trout",
   "Bob Atkinson","Joe Cool", "Dorothy Barnes",
   "Elizabeth Carlson", "Frank Dixon", "Gertrude East",
   "Harvey Frank", "Inigo Montoya", "Jeff Austin",
   "Lynn Arlington", "Michael Washington", "Nancy West" );
var $query = NULL;

if (isset($_GET['query'])) {
   $query=$_GET['query'];
}
echo "<?xml version=\"1.0\" ?>\n";
echo "<names>\n";
while (list($k,$v)=each($names)) {
   if (stristr($v,$query)) {
      echo "<name>$v</name>\n";
   }
}
echo "</names>\n";
?>
当我运行你的代码时,我发现上面的代码有错误。代码块不会做任何事情,因为$query似乎没有设置

尝试此操作并确保设置了$\u GET[“query”]变量:

if (!$query) {
   $query=$_GET['query'];
}
改变

  $query=NULL;
    if (isset($_GET["query"])) {
       $query=$_GET['query'];
    }


此错误与php无关。打开页面内容,查看生成的xml是否有效如何打开页面内容?我用的是chrome@zerkms@cloudygoose,什么是$query,它有什么值?我认为它只是HTTP GET请求中的一个变量@是的,您看到的是XML呈现错误,而不是PHP错误。在Chrome中查看源代码,您应该会看到一些XML。XML错误可能是因为PHP警告$query未定义。如果查询字符串中未设置
query
,则仍可能引发通知级别的错误。您应该详细说明他为什么要尝试此操作-至少告诉他问题出在哪里。这并不能解决逻辑(与语法相反)错误<代码>$query=null;如果(!$query){}
显然不是他想要的。
if (!$query) {
   $query= $_GET['query'];
}
if (!isset($query)) {
   $query= $_GET['query'];
}