2012-08-15 55 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']; 
} 
相關問題