Darij
@Darij

Можно ли переписать код с JS на PHP?

Доброго времени суток. Помогите, пожалуйста, переписать код с JavaScript на PHP.
Есть Библия в Json формате ЗДЕСЬ.
Задача: получать и выводить рандомный текст с ссылкой.

let wrapper = document.querySelector('.wrapper')

let request = new XMLHttpRequest();
request.open('GET', 'http://127.0.0.1:5500/rst.json'); 
request.responseType = 'text';
request.send();
// Делаем запрос на JSON файл

function random(min, max) {
   return Math.floor(Math.random() * (max - min) + min)
}
// Генерирую рандомное число

request.onload = function () {
   var superHeroesText = request.response;
   var superHeroes = JSON.parse(superHeroesText)
// Парсим текст в обьект

   for (let key in superHeroes) {
//Перебираем обьект

      let getAllBooks = superHeroes[key]
//Получаем Все книги

      let getBook = getAllBooks[random(0, 66)]
//Получаем рандомную книгу

      let getAllChapters = getBook['Chapters']
//Получаем все главы книги

      let getChapterLength = getAllChapters.length
// Получаем количество всех глав этой книги

      let getChapter = getAllChapters[random(0, getChapterLength)]
//Получаем рандомную главу этой книги

      let getAllVerses = getChapter['Verses']
// Получаем все стихи этой этой главы

      let getVersesLength = getAllVerses.length
// Получаем количество всех стихов этой главы

      let getVers = getAllVerses[random(0, getVersesLength)]
// Получаем рандомный стих этой главы

      let point = getVers['Text']
// Получаем текст стиха

      wrapper.innerHTML = `<div class="bible-text">${point}</div>`
      wrapper.innerHTML += `<div class="bible-scr">(${getBook['BookName']} ${getChapter['ChapterId']}:${getVers['VerseId']})</div>`
//Выводим полученный рандомный стих 
   }
}
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
Tim-A-2020
@Tim-A-2020
примерно так. примитивный способ
<?php
$book = json_decode(file_get_contents('http://adventsent.pp.ua/rst.json'));

$arr = [];
foreach ($book->Books as $item) {
    foreach ($item->Chapters as $val) {
        foreach ($val->Verses as $v) {
            $arr[] = $v;
        }
    }
}

$key = array_rand($arr);
var_dump($arr[$key]->Text);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
запрос через file_get_contents
json_decode вместо JSON.parse
встроенный random_int вместо самодельной функции random

вывод в html сами осилите?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы