2012-08-15 57 views
1
<?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只是在数组中查找一个名字。 ?
我把这个PHP文件在我的XAMPP根,然后键入的search.php查询=约翰在我的浏览器,那么它告诉我
此页面包含以下错误:第1栏第 错误第2行:额外的内容在文档末尾 下面是页面渲染到第一个错误。
有什么不对?有人可以告诉我这个简单的PHP有什么问题

+1

此错误无关用PHP 。打开页面内容并查看生成的xml是否有效 – zerkms 2012-08-15 04:16:48

+0

如何打开页面内容?我正在使用chrome。@ zerkms – cloudygoose 2012-08-15 04:19:33

+0

@cloudygoose,什么是$ query,它保存着什么值? – WatsMyName 2012-08-15 04:20:15

回答

0

在使用它之前,您必须初始化变量$query = null;

+0

是的,我得到它后ctrl + u,谢谢,萨拉凡和zekms – cloudygoose 2012-08-15 04:27:19

+0

这并不解决逻辑(而不是语法)的错误。 '$ query = null;如果(!$ query){}'显然不是他想要的。 – 2012-08-15 04:31:53

1

试试这个:

<?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"; 
?> 
+1

如果在查询字符串中未设置“查询”,则仍然可能引发通知级错误。 – 2012-08-15 04:30:36

+0

你应该详细说明为什么他应该尝试 - 至少告诉他问题是什么。 – Repox 2012-08-15 05:37:35

1

我认为这个问题是线 -

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

当我跑到你的代码,我在上面的代码有错误。代码块不会做任何事情,因为$查询似乎没有设置。

试试这个,确保$ _GET [ “查询”]变量设置:

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

变化

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

if (!isset($query)) { 
    $query= $_GET['query']; 
} 
相关问题