Ejemplo n.º 1
0
    public function testLineNumber2VerseNumber()
    {
        $usfm = <<<EOD
\\id MIC
EOD;
        $this->assertEquals(0, Filter_Usfm::lineNumber2VerseNumber($usfm, 0));
        $usfm = <<<EOD
\\id MIC
\\v 1 Verse
EOD;
        $this->assertEquals(1, Filter_Usfm::lineNumber2VerseNumber($usfm, 1));
        $usfm = <<<EOD
\\v 1 Verse
EOD;
        $this->assertEquals(1, Filter_Usfm::lineNumber2VerseNumber($usfm, 0));
        $usfm = <<<EOD
\\p
\\v 3 Verse 3 (out of order).
\\v 1 Verse 1. 
\\v 2 Verse 1.
EOD;
        $this->assertEquals(0, Filter_Usfm::lineNumber2VerseNumber($usfm, 0));
        $this->assertEquals(3, Filter_Usfm::lineNumber2VerseNumber($usfm, 1));
        $this->assertEquals(1, Filter_Usfm::lineNumber2VerseNumber($usfm, 2));
        $this->assertEquals(2, Filter_Usfm::lineNumber2VerseNumber($usfm, 3));
    }
Ejemplo n.º 2
0
 public static function offset2verseNumber($usfm, $offset)
 {
     $totalOffset = 0;
     $lines = explode("\n", $usfm);
     foreach ($lines as $lineNumber => $line) {
         $totalOffset += mb_strlen($line);
         if ($totalOffset >= $offset) {
             return Filter_Usfm::lineNumber2VerseNumber($usfm, $lineNumber);
         }
         // Add 1 for new line.
         $totalOffset += 1;
     }
     return 0;
 }