我是一名对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()我收到此错误:
请求的网址/test/file_getTest.php&sessionID=value read & place_origin = value read & type_origin = value read 此服务器上找不到& name_origin = 读取值。
使用.htaccess文件&使用 curl()我收到以下错误:
找不到HTTP / 1.1 404对象
没有.htacess文件&使用 file_get_contents()我收到此错误:
请求的网址/test/file_getTest.php&sessionID=value read & place_origin = value read & type_origin = value read 此服务器上找不到& name_origin = 读取值。
使用.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.1 404对象
我非常感谢任何帮助。我一直坚持这个问题一段时间了。似乎无法找到解决方案。
答案 0 :(得分: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;