Мне нужно более простое объяснение, чем How do I extract data from JSON with PHP? И мне также нужно выплескать дату от метки времени в финальном PHP.Получить временную метку статьи в PHP с помощью API Википедии
я могу захватить "Test статью" метаданных в PHP через API Википедии JSON таким образом:
<?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]])"}]}}}}
Но как я получаю и эхо/печатать только дату с отметки времени, то есть «2016-10-25» от "timestamp":"2016-10-25T14:01:47Z"
, и только эту строку из всей строки JSON?
Предполагаю, что мне нужно сначала захватить полную строку 016-10-25T14:01:47Z
, а затем снять с нее T14:01:47Z
.
Редактировать 11/25/16 Ответ Джеффа отлично работает, и я преобразовал функцию в короткий код, чтобы я мог вставить его в сообщение/содержание страницы.
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 Warning:
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