$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(); } } }