簡體   English   中英

PHP - 如何在文件之間共享 JSON 數據

[英]PHP - How to share JSON data between files

所以我正在嘗試制作一個簡單的 API,我嘗試了很多不同的東西。 我想在我的 JSON object 上顯示一個隨機數和 go 的令牌,然后將兩者存儲在數據庫中。 我不希望在您訪問網頁時發生這種情況,我希望將數據發送到數據庫並從單獨的頁面生成。

第一步是從不同的文件中獲取數據。

這是我首先嘗試的:

索引.php:

    <?php

$odds = rand(1, 100);

?>

<pre style="word-wrap: break-word; white-space: pre-wrap;">
{
    "odds": <?php echo $odds;?> 
}
</pre>

這是我試圖從中獲取數據的文件:

    <?php

$url = "https://flugscoding.com/random/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "Riverside API");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

if(!$response = curl_exec($ch)) {
echo curl_error($ch);
}
curl_close($ch);

$data = json_decode($response, true);
echo $data->odds;
?>

錯誤:

Notice: Trying to get property 'odds' of non-object in D:\xxamp\htdocs\random\perp.php on line 16

我之后嘗試了什么:

索引.php:

     <?php

$values = array("odds"=>rand(1, 100));
echo json_encode($values);

?>

這是我試圖從中獲取數據的文件:

<?php

$json = file_get_contents("index.php");        
echo $json;     
// echo $json->odds;

?>

錯誤:

It doesn't show any data or errors, just a blank screen.

有沒有人有解決這個問題的方法? 我正在嘗試為朋友建立一個可證明公平的系統。

您在兩個示例中都非常接近:

#1

$data = json_decode($response, true);
echo $data->odds;

您將true傳遞給json_decode ,這使其成為關聯數組,而不是 object。 所以你需要用$data['odds']; 反而。

#2

$json = file_get_contents("index.php");        
echo $json;   

file_get_contents可以獲取本地文件或遠程文件。 在本例中,您傳遞的是本地文件,因此$json是 PHP 代碼的內容。

您可以:

(a) 重新設計它,使index.php是 function,您可以從不同的文件中調用 function
(b) 遠程調用index.php並解析結果

一個。 index.php中創建一個 function 可以得到賠率:

<?php

    function getData() [
        return array("odds"=>rand(1, 100));
    }

然后,在另一個文件中,您可以:

<?php

    require_once 'index.php';

    $data = getData(); //now you have access to $data['odds'];

灣。 遠程調用index.php ,像這樣:

$json = file_get_contents("http://localhost/index.php");        
print_r(json_decode($json, true));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM