[英]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.