Пример #1
0
$books_array = [];
$bible_object = BibleQuery::create()->filterByCode('kjv')->filterByName('King James (Authorized Version)')->findOneOrCreate();
if ($bible_object->isNew()) {
    $bible_object->save();
}
foreach ($books_array as $book_data) {
    $book_object = BookQuery::create()->filterByChapterCount($book_data['chapter_count'])->filterByName($book_data['name'])->findOneOrCreate();
    if ($book_object->isNew()) {
        $book_object->save();
    }
    for ($current_chapter = 1; $current_chapter <= $book_data['chapter_count']; $current_chapter++) {
        $passage = $book_data['name'] . ' ' . $current_chapter;
        $passage = str_replace(' ', '%20', $passage);
        $url = 'https://getbible.net/json?passage=' . $passage;
        $curl_object = curl_init($url);
        curl_setopt($curl_object, CURLOPT_CONNECTTIMEOUT, 0);
        curl_setopt($curl_object, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl_object, CURLOPT_TIMEOUT, 60);
        curl_setopt($curl_object, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
        $json_response = curl_exec($curl_object);
        $json_response = substr($json_response, 1, -2);
        $passage_data = json_decode($json_response);
        foreach ($passage_data->chapter as $verse_data) {
            $word_count = substr_count($verse_data->verse, ' ') + 1;
            $verse_translation_object = new VerseTranslation();
            $verse_translation_object->setBible($bible_object)->setText($verse_data->verse)->setWordCount($word_count);
            $verse_object = new Verse();
            $verse_object->addVerseTranslation($verse_translation_object)->setBook($book_object)->setChapterNumber($current_chapter)->setVerseNumber($verse_data->verse_nr)->save();
        }
    }
}