0

我是一名 Android 开发人员,对 PHP 知之甚少。从查询字符串中读取变量时,我遇到了 404 Error Object Not Found 这个问题。我添加了 .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);

.ht 访问代码:

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= value read 。

使用 .htaccess 文件并使用curl()我收到以下错误:

HTTP/1.1 404 对象未找到

如果没有 .htacess 文件并使用file_get_contents()我收到此错误:

在此服务器上未找到请求的 URL /test/file_getTest.php&sessionID= value read &place_origin= value read &type_origin= value read &name_origin= value read 。

使用 .htaccess 文件并使用file_get_contents()我收到以下错误:

file_get_contents( http://xyz.com?language=en&sessionID=&place_origin=&type_origin=&name_origin= ):打开流失败:HTTP 请求失败!HTTP/1.1 404 Object Not Found in C:\wamp\www\file_getTest.php 第 20 行

我将不胜感激任何帮助。我已经在这个问题上停留了一段时间,似乎无法找到解决方案。

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 回答