我需要一個比How do I extract data from JSON with PHP?更簡單的解釋而且,我還需要從最後的PHP中的時間戳中剔除日期。使用Wikipedia API獲取PHP中的文章時間戳
能搶我通過維基百科JSON API「測試文章」元數據在PHP中這樣說:
<?php
$json_string = file_get_contents("https://en.wikipedia.org/w/api.php?action=query&titles=Test_article&prop=revisions&rvlimit=1&format=json");
print $json_string;
?>
,給了我這樣的:
{"continue":{"rvcontinue":"20161025140129|746140638","continue":"||"},"query":
{"normalized":[{"from":"Test_article","to":"Test article"}],"pages":{"29005947":
{"pageid":29005947,"ns":0,"title":"Test article","revisions":
[{"revid":746140679,"parentid":746140638,"user":"Theblackmidi72",
"timestamp":"2016-10-25T14:01:47Z","comment":"Undid revision 746140638 by
[[Special:Contributions/Theblackmidi72|Theblackmidi72]] ([[User
talk:Theblackmidi72|talk]])"}]}}}}
但如何我得到和回聲/只打印時間戳的日期,即"timestamp":"2016-10-25T14:01:47Z"
的「2016-10-25」,以及整個JSON字符串中的那個字符串?
我假設我需要先抓住整個字符串016-10-25T14:01:47Z
,然後從中去掉T14:01:47Z
。
編輯11/25/16傑夫的答案很好,我把這個函數轉換成了一個簡碼,所以我可以把它插入到post/page內容中。
function wikipedia_article_date() {
$url = "https://en.wikipedia.org/w/api.php?action=query&titles=Test_article&prop=revisions&rvlimit=1&format=json";
$data = json_decode(file_get_contents($url), true);
$date = $data['query']['pages']['746140638']['revisions'][0]['timestamp'];
$date = new DateTime($date);
return $date->format('m-d-Y');
}
add_shortcode('article_date','wikipedia_article_date');
但現在我得到一個PHP的警告:
file_get_contents(https://en.wikipedia.org/w/api.php?action=query&
amp;titles=Test_article&prop=revisions&rvlimit=1&format=json):
failed to open stream: no suitable wrapper could be found in
/functions/shortcodes.php
這是我的短代碼或與原函數的問題?
的[我如何從JSON中提取數據與PHP?(可能的複製http://stackoverflow.com/questions/29308898/how-do-i-extract-data-from-json-with-php) –
儘管你已經說過這個鏈接的問題不夠簡單,但它很全面。所有你需要知道的是如何引用對象和數組的元素,例如'$ foo = $ foo_object-> bar'或$ foo = $ foo_array ['bar']'。你可以做的最天真的數據是'$ foo = date('Y-m-d',strtotime($ timestamp));' – moopet