如何通过URL在$ _GET方法中获取未知字符串

时间:2017-04-12 16:02:39

标签: php json ajax

我想使用$ _GET方法将一个字符串从一个PHP文件传递到另一个PHP文件。每次传递时,此字符串都具有不同的值。据我所知,你通过URL传递GET参数,你必须明确告诉参数是什么。如果要返回从提供服务器到服务器请求它的字符串值,该怎么办?我想传递json数据格式。另外我如何将其作为Ajax发送?

服务器(get.php):

<?php
$tagID = '123456';       //this is different every time
$tag = array('tagID' => $_GET['tagID']);
echo json_encode($tag);
?>

服务器(rec.php):

<?php
$url = "http://192.168.12.169/RFID2/get.php?tagID=".$tagID;

$json = file_get_contents($url);
#var_dump($json);

$data = json_decode($json);
#var_dump($data);

echo $data;
?>

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望从服务器获取tagID?您只需传递一个“请求”即可。服务器的参数,告诉服务器返回什么。

编辑:这实际上并不是实现API的正确方法(比如说),但为了回答你的问题,这就是:

服务器

switch($_GET['request']) {

   case 'tagID';
        echo json_encode($tag);
        break;
}

您现在可以使用192.168.12.169/get.php?request=tagId

这样的网址获取tagID

客户端(带CURL的PHP​​)

当涉及到客户端时,它变得有点复杂。你提到了AJAX,但这只适用于JavaScript。你的php文件不能使用AJAX,你必须使用cURL。

$request = "?request=tagID";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, '192.168.12.169/get.php' . $request); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, '3');
$content = trim(curl_exec($ch));
curl_close($ch);
echo $content;

编辑:为完整性添加了工作cURL示例。

来自How to switch from POST to GET in PHP CURL

的cURL示例

客户端(使用AJAX的Javascript)

$.get("192.168.12.169/get.php?request=tagId", function(data) {
    alert(data);
});