public function testOneString() { $this->assertEquals("", Filter_Usfm::oneString("")); $this->assertEquals("\\id GEN", Filter_Usfm::oneString("\\id GEN\n")); $this->assertEquals("\\v 10 text", Filter_Usfm::oneString("\\v 10\ntext")); $this->assertEquals("\\v 10\\v 11", Filter_Usfm::oneString("\\v 10\n\\v 11")); $this->assertEquals("\\v 10 text\\p\\v 11", Filter_Usfm::oneString("\\v 10 text\n\\p\\v 11")); }
public static function import($input, $stylesheet) { $result = array(); $book_number = 0; $chapter_number = 0; $chapter_data = ""; $input = Filter_Usfm::oneString($input); $markers_and_text = Filter_Usfm::getMarkersAndText($input); $retrieve_book_number_on_next_iteration = false; $retrieve_chapter_number_on_next_iteration = false; foreach ($markers_and_text as $marker_or_text) { if ($retrieve_book_number_on_next_iteration) { $database_books = Database_Books::getInstance(); $book_number = $database_books->getIdFromUsfm(substr($marker_or_text, 0, 3)); $chapter_number = 0; $retrieve_book_number_on_next_iteration = false; } if ($retrieve_chapter_number_on_next_iteration) { $retrieve_chapter_number_on_next_iteration = false; $chapter_number = Filter_Numeric::integer_in_string($marker_or_text); if ($chapter_number == "") { $chapter_number = 0; } } $marker = Filter_Usfm::getMarker($marker_or_text); if ($marker != "") { // USFM marker found. if ($marker == "id") { $retrieve_book_number_on_next_iteration = true; $store_chapter_data = true; } if ($marker == "c") { $retrieve_chapter_number_on_next_iteration = true; $store_chapter_data = true; } if ($store_chapter_data) { $chapter_data = trim($chapter_data); if ($chapter_data != "") { $result[] = array($book_number, $chapter_number, $chapter_data); } $chapter_number = 0; $chapter_data = ""; $store_chapter_data = false; } $database_styles = Database_Styles::getInstance(); $marker_data = $database_styles->getMarkerData($stylesheet, $marker); $type = $marker_data['type']; $subtype = $marker_data['subtype']; $styles_logic = Styles_Logic::getInstance(); if ($styles_logic->startsNewLineInUsfm($type, $subtype)) { $chapter_data .= "\n"; } } $chapter_data .= $marker_or_text; } $chapter_data = trim($chapter_data); if ($chapter_data != "") { $result[] = array($book_number, $chapter_number, $chapter_data); } return $result; }