0

cURL を有効にして XAMPP を使用しています。php によって生成された xml を解析しようとすると、このエラーが発生します。私のsearch.phpコード:

   <?php
header("Content-type: text/xml");
$conn=mysql_connect("localhost","root","");
mysql_select_db("places");
$location = $_GET['location'];
$type = $_GET['type'];
if($location!="" && $type != "" ){
    $result=mysql_query("select * from accommodation WHERE location='$location' AND type= '$type'");
    }

elseif($location != "")
    {$result=mysql_query("select * from accommodation WHERE location='$location'");
}

else{echo "ERROR";
}

echo"<places>";
while($row=mysql_fetch_array($result))
    {
        echo "<place>";
        echo "<placeid>$row[ID]</placeid>";
        echo "<name>$row[name]</name>";
        echo "<type>$row[type]</type>";
        echo "<location>$row[location]</location>";
        echo "<availableroom>$row[availability]</availableroom>";
        echo "</place>";
    }


echo"</places>";

mysql_close($conn);
?>

これが私の cURL コードです。POST を使用して、別のページのフォームから場所とタイプを取得します。また、---> echo "The server sent back : " を使用しました。htmlentities($応答); しかし、同じエラーメッセージのみに応答して何も得られません

 <?php
    $l = $_POST['location'];
    $t = $_POST['type'];
    $connection = curl_init();
    curl_setopt($connection, CURLOPT_URL,"search.php?location=$l&type=$t");
    curl_setopt($connection,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($connection,CURLOPT_HEADER, 0);
    $response = curl_exec($connection);
    echo "The server sent back : ". htmlentities($response);
    $xml = simplexml_load_string($response);
    for($index=0; $index < count($xml->hotel); $index++)
    {
        echo $xml->hotel[$index]->hotelid . "<br />";
        echo $xml->hotel[$index]->name . "<br />";
        echo $xml->hotel[$index]->type . "<br />";
        echo $xml->hotel[$index]->location . "<br />";
        echo $xml->hotel[$index]->availableroom . "<br />";
    }


    ?>
4

1 に答える 1

0

curl を使用して外部ホストまたはローカル ホストから XML を取得しているかどうかはわかりませんが (ローカルでそれを行うのはあまり意味がありません)、どちらの方法"search.php?location=$l&type=$t"でも curl が取得できる有効な URL ではありません$result。これが$xml、オブジェクトではなく false であり、エラーが発生する理由です。

プロトコルとホスト名を URL に追加します。$xml != falseの後に確認してください$xml = simplexml_load_string($response)

于 2012-04-19T01:30:18.590 に答える