如何通过php调用api并从中获取json文件

she*_*feh 3 php api rest .htaccess json

我想检查所有请求的 url,如果 url 中包含“video”文件夹,请将其重定向到 API 文件。然后 API 给了我一个 json 文件,其中只包含“响应:真”或“响应:假”。如果 json 文件中有响应:true,则必须显示 url,如果 json 文件包含响应:false,则必须向用户显示预定义的简单 403 页面。

我知道第一部分可以通过 .htaccess 文件中的简单代码实现,如下所示:

RewriteRule ^your/special/folder/ /specified/url [R,L]
Run Code Online (Sandbox Code Playgroud)

但我不知道如何做第二部分。我的意思是如何获取API的结果,它是一个json文件的形式并检查它。

M A*_*fan 6

您可以使用卷曲..

获取请求

$url = 'http://example.com/api/products';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response_json = curl_exec($ch);
curl_close($ch);
$response=json_decode($response_json, true);
Run Code Online (Sandbox Code Playgroud)

发布请求

    $postdata = array(
        'name' => 'Arfan'
    );

    $url = "https://example.com/api/user/create";

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);

    $json_response = curl_exec($curl);
    $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    curl_close($curl);
Run Code Online (Sandbox Code Playgroud)

您还可以使用file_get_content来获取 API 数据。

$json = file_get_contents("$url")
Run Code Online (Sandbox Code Playgroud)