ichthus-soft / bible_ref
Requires
- php: >=5.3.0
README
关于项目
Bible_ref 是一个 composer 包,它将真实的文本引用转换为 PHP 数组,以便更好地在 MySQL 查询或其他操作中使用。
安装
建议您通过 Composer 安装此包。在您的当前工作目录中创建一个名为 composer.json
的文件,并将以下内容粘贴进去:
{ "require": { "ichthus-soft/bible_ref": "dev-master" } }
然后运行 composer install
。
或者,如果您已经在项目中有一个 composer.json
文件,添加上述代码并运行 composer update
。
之后,您可以使用此包如下:
use BibleRef\Reference; $reference = new Reference('John 3:16');
####手动安装#### 克隆此仓库,并在您的 PHP 文件中包含 src/BibleRef/Utils.php
和 src/BibleRef/Reference.php
!
查询语法
# You can add a single verse $single = new Reference('John 3:16'); # You can add a range of verses $range = new Reference('John 3:1-16'); # You can ask for multiple chapters $multiple = new Reference('John 3:1&4:1-10'); # You can even ask for two books $books = new Reference('John 3:16;Acts 1:1-10'); # You can combine all of the above $uberCool = new Reference('John 3:16&1:1;Acts 5:1-15;Genesis 1:1-20&2:1');
总结如下:
- 格式为:BookName chapter:verse[-endVerse](创世记 1:1[-10])
- 要添加另一个章节,使用 & 连接(创世记 1:1&2:1)
- 要添加另一本书,使用 ; 连接(分号)(创世记 1:1;使徒行传 1:1)
###版本 2(当前版本)### 版本 2 是推荐使用的新版本。返回的输出与旧版本略有不同。
注意:此版本按您请求的顺序返回输出(旧版本按升序返回经文。如果您首先请求第 2 章第 4 节,然后请求第 2 节,则数组中的第一个元素将是第 4 节,因为它是最先请求的!)
输出结构示例
/** Array ( [passage] => (string) [books] => Array( <- array of books ( [BookName1] => Array( [verses] => Array( [chapter] => Array([verses]) ) ) ) **/
示例
$test = new Reference('Genesis 2:9&1:10-12,9;John 1:4-5'); $array = $test->v2(); print_r($array); /** returns: Array ( [passage] => Genesis 2:9,1:10-12,9 John 1:4-5 [books] => Array ( [Genesis] => Array ( [verses] => Array ( [2] => Array ( [0] => 9 ) [1] => Array ( [0] => 10 [1] => 11 [2] => 12 [3] => 9 ) ) ) [John] => Array ( [verses] => Array ( [1] => Array ( [0] => 4 [1] => 5 ) ) ) ) ) **/
####实际应用:#### 此包是为 ichthus-soft/bible-api 包制作的,因此让我给您一个示例,说明我们如何在其中使用此包(其中包含部分罗马尼亚语)。您还可以通过点击 这里 直接查看此代码!
function v2_query($query, &$app) { $test = new Reference($query); $test = $test->v2(); $return['pasaj'] = $test['passage']; $return['versete'] = []; $return['text'] = ''; foreach($test['books'] as $nume => $versete) { foreach($versete['verses'] as $capitol => $verset) { foreach($verset as $v) { $_verset = $app['db']->fetchAssoc("SELECT * FROM biblia WHERE carte = ? AND capitol = ? AND verset = ?", [$nume, $capitol, $v]); if($_verset) { $a['testament'] = $_verset['testament']; $a['carte'] = $_verset['carte']; $a['capitol'] = $_verset['capitol']; $a['verset'] = $_verset['verset']; $a['text'] = $_verset['text']; array_push($return['versete'], $a); $return['text'] .= $_verset['text'].' '; } } } } return $return; }
###版本 1(旧版本)###
不应使用此版本。
小心!
如果您添加多个章节,则返回值中的 verses
将默认为空,而 chapters
返回值将是一个包含相关经文的章节数组。
array (size=3) 'name' => string 'John' (length=4) 'chapter' => array (size=2) 1 => array (size=1) 0 => int 1 2 => array (size=1) 0 => int 1 'verses' => array (size=0)
要获取返回值 verses
中的经文,您必须使用第二个参数将引用类初始化为 false
:$test = new Reference('John 1:1&2:1', false);
基本上,返回数组中的 verses
键将是 chapter
键的克隆(一个关联数组,其中 chapterNumber => array() 的经文)!
示例
require_once __DIR__ . '/vendor/autoload.php'; use BibleRef\Reference; $test = new Reference('John 3:16'); $array = $test->getArray(); var_dump($array); /** Returns something like: array (size=3) 'name' => string 'John' (length=4) 'chapter' => string '3' (length=1) 'verses' => array (size=1) 0 => int 16 **/
更高级的示例
require_once __DIR__ . '/vendor/autoload.php'; use BibleRef\Reference; $test = new Reference('Ioan 1:1-4,5,6,9,11-14,20-27&2:1,4-10;Evrei 12:16,1-5,22-27&22:1,5-6&4:88,55,1-3'); $array = $test->getArray(); echo '<pre>'; print_r($array);
返回这个
Array ( [0] => Array ( [name] => Ioan [chapter] => Array ( [1] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 9 [7] => 11 [8] => 12 [9] => 13 [10] => 14 [11] => 20 [12] => 21 [13] => 22 [14] => 23 [15] => 24 [16] => 25 [17] => 26 [18] => 27 ) [2] => Array ( [0] => 1 [1] => 4 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 [7] => 10 ) ) [verses] => Array ( [1] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 9 [7] => 11 [8] => 12 [9] => 13 [10] => 14 [11] => 20 [12] => 21 [13] => 22 [14] => 23 [15] => 24 [16] => 25 [17] => 26 [18] => 27 ) [2] => Array ( [0] => 1 [1] => 4 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 [7] => 10 ) ) ) [1] => Array ( [name] => Evrei [chapter] => Array ( [12] => Array ( [0] => 16 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 22 [7] => 23 [8] => 24 [9] => 25 [10] => 26 [11] => 27 ) [22] => Array ( [0] => 1 [1] => 5 [2] => 6 ) [4] => Array ( [0] => 88 [1] => 55 [2] => 1 [3] => 2 [4] => 3 ) ) [verses] => Array ( [12] => Array ( [0] => 16 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 22 [7] => 23 [8] => 24 [9] => 25 [10] => 26 [11] => 27 ) [22] => Array ( [0] => 1 [1] => 5 [2] => 6 ) [4] => Array ( [0] => 88 [1] => 55 [2] => 1 [3] => 2 [4] => 3 ) ) ) )