【问题标题】:how to get unknown string in $_GET method through URL如何通过 URL 获取 $_GET 方法中的未知字符串
【发布时间】:2017-04-12 16:02:38
【问题描述】:

我想使用 $_GET 方法将字符串从一个 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;
?>

【问题讨论】:

  • 对于 AJAX,请查看 MDN。对于 $_GET 变量,只需遍历它,因为它是一个数组。 foreach($_GET as $k =&gt; $v) { // code } 会这样做。不过不推荐
  • 这个问题真的那么蠢吗?我对 _GET 方法没有足够的了解,我只想将一个字符串从一台服务器传递到另一台服务器,很抱歉我的问题,但我什至不知道从哪里开始。
  • PHP documentation over $_GET 的小检查表明$_GET 变量是一个key>value 数组(在例如python 中称为dict)。这意味着您可以简单地将其作为数组进行迭代
  • 查询字符串本质上是,值对。提供一个已知的键,值可以是任何东西
  • 您可能得到了很多反对意见,因为您的代码看起来运行良好 - 您尝试过吗?如果是,发生了什么?这与您想要的行为有何不同?

标签: php json ajax


【解决方案1】:

如果我理解正确,您想从服务器获取tagID?您可以简单地将“请求”参数传递给服务器,告诉服务器返回什么。

编辑:这确实不是实现 API 的正确方法(就像,根本),但为了回答您的问题,这是如何:

服务器

switch($_GET['request']) {

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

您现在可以使用192.168.12.169/get.php?request=tagId 之类的 URL 获取 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 示例只是为了完整性。

包含的 cURL 示例来自:How to switch from POST to GET in PHP CURL

客户端(带有 AJAX 的 Javascript)

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

【讨论】:

  • 好吧我的错,我把它当成客户端,但实际上它是两个服务器之间的连接,我会纠正我的问题。
  • @UZIERSKI 在这种情况下,您对术语客户端的使用实际上是正确的。在两个 PHP 服务器之间,不管你怎么称呼它们,你都必须使用 cURL。
  • 我提到了 AJAX,因为我想将此 tagID 包装在 JavaScript 中,但我认为我不应该提及这一点,因为现在我想了解客户端(服务器)如​​何从服务器请求变量值.
  • 你的意思是用 JSON 包装吗?这实际上可以通过 json_encode 完成(添加到示例中)。
  • 是的,谢谢,我稍后会尝试这段代码,因为目前我不在机器旁。您是否可以像使用 cURL 一样向我发送一个指向 Javascript 中的简单 Ajax 的链接,请求该值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多