V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hylsay
V2EX  ›  程序员

服务器不定时会向一个 url(例如 https://www.123.com/23/)推送一次 get 请求,请问怎么使用 PHP 判断当前 url 是否有 get 请求,并接收 get 请求的参数呀?

  •  
  •   hylsay · 2019-02-11 09:43:02 +08:00 · 3429 次点击
    这是一个创建于 1895 天前的主题,其中的信息可能已经有所发展或是发生改变。
    17 条回复    2019-02-12 08:48:42 +08:00
    lshang
        1
    lshang  
       2019-02-11 09:51:03 +08:00
    这条 URL 应该是路由到你的 PHP 脚本上的吧,接收到请求的时候,判断下 HTTP Method 是否为 GET,如果是 GET 就获取参数。

    判断是否为 GET 可以用
    ```php
    if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    }
    ```

    获取参数,可以直接取 $_GET 的值。
    qiayue
        2
    qiayue  
       2019-02-11 10:04:39 +08:00
    php 本身就是被动接收的,有请求就会把你的代码执行一次
    除非你的 php 做成了服务,即使是服务,也会有消息时给你事件通知
    Sapp
        3
    Sapp  
       2019-02-11 10:07:50 +08:00
    没看懂你的需求,这不就是个简单的请求处理么?一般是代理转发到你的 php 上,php 进行处理吧? 这个时候你就判断一下是 get 还是 post 不就行了么?如果是框架,应该有直接的处理吧
    hylsay
        4
    hylsay  
    OP
       2019-02-11 11:06:47 +08:00
    @lshang 老师,怎么接收 get 请求的参数?
    hylsay
        5
    hylsay  
    OP
       2019-02-11 11:09:38 +08:00
    @Sapp $order_id = $_GET["order_id"]; 是通过这种方式接收参数的吗?为什么获取不到数据呢?
    yytsjq
        6
    yytsjq  
       2019-02-11 11:13:21 +08:00
    print_r($_GET) 这样?
    MonoLogueChi
        7
    MonoLogueChi  
       2019-02-11 11:13:44 +08:00 via Android
    get 请求就是和你正常打开一个网页是一样的,获取 get 请求参数,就是下载你打开的网页,只不过程序获得的是网页源码,你看到的是已经渲染过的网页
    runnerlee
        8
    runnerlee  
       2019-02-11 11:15:36 +08:00
    开了 nginx 的 access log 看一下? 看看实际过来的 method 跟 uri 是怎样的. 如果的确是 GET 并且带有 query string, 那可能就要看下 nginx 里的 pathinfo 配置了.
    hylsay
        9
    hylsay  
    OP
       2019-02-11 11:21:35 +08:00
    现在只知道服务器会向这个 url(例如: http://www.xxx.com)发送一次 get 请求,如何通过 php 接收 get 参数?求老师们给个例子。我使用$order_id = $_GET["order_id"]; 获取不到数据
    qiayue
        10
    qiayue  
       2019-02-11 11:29:12 +08:00
    你自己开发测试时,需要自己加参数
    例如 domain.com/order?order_id=123

    然后你的程序里就能够通过 $_GET['order_id'] 来获取
    $order_id = isset($_GET['order_id'])?$_GET['order_id']:0;

    其实简单来说,就是你服务器怎么访问,你自己测试当然也要同样访问啊
    qiayue
        11
    qiayue  
       2019-02-11 11:30:03 +08:00
    服务器向你的 url 发了一次请求,后来你自己再打开,又是一个新的请求,当然获取不到上一次服务器请求的数据啊
    zhengwenk
        12
    zhengwenk  
       2019-02-11 11:44:15 +08:00
    你的 order_id 是 23 么
    zarte
        13
    zarte  
       2019-02-11 11:55:16 +08:00
    @hylsay
    php 的 get 参数是?开头后面的用&
    baidu.com?id=1&name=333 这样
    你的那个 baidu.com/1/333 是要配置 nginx 或者 apache 实现的要不然就会去找 1 文件夹和 333 文件
    PERFECTCN
        14
    PERFECTCN  
       2019-02-11 11:58:36 +08:00
    qilishasha
        15
    qilishasha  
       2019-02-11 14:48:46 +08:00
    可以通过$_SERVER['REQUEST_URI']来对 URL 进行解析,很多人使用这个方法放自己捣鼓的框架里来做一种叫“路由”的东西。。。。。。。。。
    zxq2233
        16
    zxq2233  
       2019-02-11 15:17:27 +08:00
    php 基础
    jasperjia
        17
    jasperjia  
       2019-02-12 08:48:42 +08:00 via Android
    理解一下反向代理为什么叫反向代理而不是正向代理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2924 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 07:48 · PVG 15:48 · LAX 00:48 · JFK 03:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.