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?query=John と入力すると、
このページには次のエラーが含まれています: 行 2 列 1 のエラー: ドキュメントの末尾に余分なコンテンツがあることがわかります以下は、最初のエラーまでのページのレンダリングです。
どうしたの?

4

4 に答える 4

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";
?>
于 2012-08-15T04:26:54.240 に答える
1

問題は並んでいると思います-

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

コードを実行すると、上記のコードでエラーが発生しました。$query が設定されていないように見えるため、コード ブロックは何もしません。

これを試して、 $_GET["query"] 変数が設定されていることを確認してください:

  $query=NULL;
    if (isset($_GET["query"])) {
       $query=$_GET['query'];
    }
于 2012-08-15T04:27:08.570 に答える
0

使用する前に変数を初期化する必要があります $query = null;

于 2012-08-15T04:26:10.693 に答える
0

変化する

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

if (!isset($query)) {
   $query= $_GET['query'];
}
于 2012-08-15T04:39:05.223 に答える