0

私はPHPの知識がほとんどないAndroid開発者です。クエリ文字列から変数を読み取るときに404エラーオブジェクトが見つからないというこの問題で立ち往生しています。.htaccessファイルを追加した結果、エラーはなくなりましたが、変数が読み取られません。ただし、クエリ文字列なしでURLを読み取ると、完全に機能します。うまくいかない理由が思いつかない。これが私が試したことです:

PHPファイル:

ファイル名:file_getTest.php

function file_get_contents_curl($url) {
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}
$baseUrl='http://xyz.com?language=en';
$language = $_GET['language'];
$session = $_GET['sessionID'];
$placeOrigin=$_GET['place_origin'];
$typeOrigin=$_GET['type_origin']; 
$nameOrigin=$_GET['name_origin'];
$homePage =($baseUrl."&sessionID=".$session."&place_origin=".$placeOrigin."&type_origin=".$typeOrigin."&name_origin=".$nameOrigin);

//if "echo file_get_contents($baseUrl)" is executed it works fine

//echo file_get_contents($homePage); //I have tried file_get_contents but no use

echo file_get_contents_curl($homePage);

.htaccessコード:

RewriteEngine on
RewriteRule .* file_getTest.php

.htacessファイルがなく、curl()を使用すると、次のエラーが発生します。

要求されたURL /test/file_getTest.php&sessionID= value read &place_origin = value read&type_origin = value read name_origin =valuereadがこのサーバーで見つかりませんでした。

.htaccessファイルとcurl()を使用すると、次のエラーが発生します。

HTTP /1.1404オブジェクトが見つかりません

.htacessファイルがなく、file_get_contents ()を使用すると、次のエラーが発生します。

要求されたURL /test/file_getTest.php&sessionID= value read &place_origin = value read&type_origin = value read name_origin =valuereadがこのサーバーで見つかりませんでした。

.htaccessファイルとfile_get_contents()を使用すると、次のエラーが発生します。

file_get_contents(http://xyz.com?language = en&sessionID =&place_origin =&type_origin =&name_origin = ):ストリームを開くことができませんでした:HTTPリクエストが失敗しました!20行目のC:\ wamp \ www\file_getTest.phpにHTTP/1.1404オブジェクトが見つかりません

助けていただければ幸いです。私はしばらくの間この問題に悩まされており、解決策を見つけることができないようです。

4

1 に答える 1

0

問題は解決しました。これはかなり奇妙に思えますが、$homepage の二重引用符 "" を残りの変数の一重引用符と交換しただけです。その後、すべてのクエリ文字列パラメーターをエンコードしましたが、魅力的に機能しました。

最終的なコードは次のようになります。

$baseUrl="http://xyz.com?language=en";

$session = $_GET["sessionID"];
$placeOrigin=$_GET["place_origin"];
$typeOrigin=$_GET["type_origin"]; 
$nameOrigin=$_GET["name_origin"];

$placeDestination=$_GET["place_destination"];
$typeDestination=$_GET["type_destination"];
$nameDestination=$_GET["name_destination"];

$sessionE=urlencode($session);
$placeOriginE=urlencode($placeOrigin);
$typeOriginE=urlencode($typeOrigin);
$nameOriginE=urlencode($nameOrigin);

$placeDestinationE=urlencode($placeDestination);
$typeDestinationE=urlencode($typeDestination);
$nameDestinationE=urlencode($nameDestination);

$homepage=$baseUrl.'&sessionID='.$sessionE.'&place_origin='.$placeOriginE.'&type_origin='.$typeOriginE.'&name_origin='.$nameOriginE.'&place_destination='.$placeDestinationE.'&type_destination='.$typeDestinationE.'&name_destination='.$nameDestinationE;
于 2013-02-21T21:03:33.600 に答える