《PHP教程:Yii核心驗(yàn)證器api詳解》要點(diǎn):
本文介紹了PHP教程:Yii核心驗(yàn)證器api詳解,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
相關(guān)主題:YII框架
本文實(shí)例講述了Yii核心驗(yàn)證器api.分享給大家供大家參考,具體如下:PHP實(shí)例
核心驗(yàn)證器 Core ValidatorsPHP實(shí)例
前言PHP實(shí)例
Yii 提供了一系列常用的核心 validators, 你可在
yii\validators namespace 中找到. 不用使用長(zhǎng)的驗(yàn)證器類(lèi)名, 你可以使用別名代替他們.PHP實(shí)例
例如, 你可以使用別名 required 代替 yii\validators\RequiredValidator 類(lèi):PHP實(shí)例
<?php public function rules() { return [ [['email', 'password'], 'required'], ]; } ?>
這個(gè) yii\validators\Validator::$builtInValidators 屬性生命所有支持的驗(yàn)證器的別名.PHP實(shí)例
接下來(lái), 我們將講解每種核心驗(yàn)證器的用法.PHP實(shí)例
1. boolean 對(duì)錯(cuò)值PHP實(shí)例
<?php [ // 檢查是否 "selected" 是 0 或 1, 不管數(shù)據(jù)類(lèi)型 ['selected', 'boolean'], // 檢查是否 "deleted" 是一個(gè) boolean 類(lèi)型, 只能是 true 或則 false ['deleted', 'boolean', 'trueValue' => true, 'falseValue' => false, 'strict' => true], ] ?>
上面檢測(cè)是否是一個(gè)bool值.PHP實(shí)例
trueValue: 代表true時(shí)的值. 默認(rèn)為 '1'.
falseValue: 代表 false 時(shí)的值. 默認(rèn)為 '0'.
strict: 是否輸入框中的值必須匹配 設(shè)置的 trueValue 和 falseValue. 默認(rèn)為 false.PHP實(shí)例
注意: 因?yàn)閿?shù)據(jù)提交通過(guò)HTML形式都是字符創(chuàng), 一般你需要設(shè)置 strict 屬性為 false.PHP實(shí)例
2. captcha 驗(yàn)證碼PHP實(shí)例
<?php [ ['verificationCode', 'captcha'], ] ?>
這個(gè)驗(yàn)證器通常和
yii\captcha\CaptchaAction 以及
yii\captcha\Captcha 一起使用以確保輸入的是相同的驗(yàn)證碼 通過(guò) CAPTCHA 組件.
caseSensitive: 是否驗(yàn)證碼需要區(qū)分大小寫(xiě). 默認(rèn)為 false.
captchaAction: 默認(rèn)的驗(yàn)證碼的 CAPTCHA action 生成 CAPTCHA image的路徑. 默認(rèn)為 'site/captcha'.
skipOnEmpty: 輸入為空的時(shí)候是否跳過(guò)驗(yàn)證. 默認(rèn)false, 即 input 輸入是必須的.PHP實(shí)例
3. compare 比較PHP實(shí)例
<?php [ // 驗(yàn)證是否 "password" 屬性和 "password_repeat"是否相等 ['password', 'compare'], // 驗(yàn)證 age >= 30 ['age', 'compare', 'compareValue' => 30, 'operator' => '>='], ] ?>
這個(gè)驗(yàn)證器比較指定的輸入值和另一個(gè)值確保他們之間使用指定的操作符.PHP實(shí)例
compareAttribute: 屬性的名字即將會(huì)和誰(shuí)比較.當(dāng)驗(yàn)證器被用來(lái)驗(yàn)證一個(gè)屬性的時(shí)候, 他會(huì)和屬性名字相同 但帶有后綴 _repeat的屬性相比較. 例如, 如果要驗(yàn)證的屬性名是 password, 那么默認(rèn)對(duì)比的屬性名就是 password_repeat 你可以指定你想要的值.
compareValue: 一個(gè)和輸入值比較的常量值. 當(dāng) property 和 compareAttribute 屬性被同時(shí)指定的時(shí)候, 這個(gè)值將優(yōu)先.
operator: 比較的操作符. 默認(rèn)是 ==, 即輸入值和 compareAttribute 或 compareValue 值相等的時(shí)候才會(huì)成功.
支持下面這些操作符: ==、===、!=、!==、>、>=、<、<=.PHP實(shí)例
4. date 日期PHP實(shí)例
<?php [ [['from_date', 'to_date'], 'date'], ] ?>
這個(gè)驗(yàn)證器檢查輸入的值是一個(gè)日期date, 時(shí)間time 或者datetime 以一個(gè)合適的形式. 可選的,他能轉(zhuǎn)換輸入值成為一個(gè)UNIX時(shí)間戳存儲(chǔ)在一個(gè)通過(guò)timestampAttribute 指定的屬性里.PHP實(shí)例
format: 這個(gè) date/time 是 http://php.net/manual/en/datetime.createfromformat.php 中聲明的所有支持的格式PHP實(shí)例
如果這個(gè)值沒(méi)有設(shè)置, 他會(huì)自動(dòng)取值 Yii::$app->formatter->dateFormat.
timestampAttribute: 屬性名用來(lái)存儲(chǔ)轉(zhuǎn)換將輸入的日期或時(shí)間. 也可以是相同的屬性名作為被驗(yàn)證過(guò)的. 如果是這種情況, 原始的值將會(huì)被時(shí)間戳重寫(xiě). 你可以看看 "如何處理日期選擇器 DatePicker" 用例子.
http://www.yiiframework.com/doc-2.0/widget-jui#datepicker-date-inputPHP實(shí)例
如果輸入的是可選的,你也可能要添加一個(gè)默認(rèn)值濾波器除了日期驗(yàn)證,以確保空輸入存儲(chǔ)為NULL.否則你可能最終得到的日期像日期選擇器的輸入字段在0000-00-00 或 您的數(shù)據(jù)庫(kù)1970-01-01.PHP實(shí)例
<?php [ [['from_date', 'to_date'], 'default', 'value' => null], [['from_date', 'to_date'], 'date'], ], ?>
5.default 默認(rèn)值PHP實(shí)例
<?php [ // 設(shè)置 "age" 為 null 如果他是空的 ['age', 'default', 'value' => null], // 設(shè)置 "country" 為 "USA" 如果他是空的 ['country', 'default', 'value' => 'USA'], // 分配 "from" 和 "to" 分別加3天和6天, 如果他們是空的話(huà) [['from', 'to'], 'default', 'value' => function ($model, $attribute) { return date('Y-m-d', strtotime($attribute === 'to' ? '+3 days' : '+6 days')); }], ] ?>
這個(gè)驗(yàn)證器不驗(yàn)證數(shù)據(jù). 當(dāng)他們?yōu)榭盏臅r(shí)候.分配給屬性值.PHP實(shí)例
value: 表單的默認(rèn)值 函數(shù)原型如下,PHP實(shí)例
<?php function foo($model, $attribute) { // ... 組裝 $value ... return $value; } ?>
6. double 浮點(diǎn)值PHP實(shí)例
<?php [ // 檢查 "salary" 是一個(gè) double 數(shù)字 ['salary', 'double'], ] ?>
相當(dāng)于一個(gè)數(shù)字驗(yàn)證器:PHP實(shí)例
max: 數(shù)字上限,沒(méi)設(shè)置不檢查
min: 數(shù)字下線(xiàn),沒(méi)設(shè)置不檢查PHP實(shí)例
7. email 郵箱驗(yàn)證PHP實(shí)例
<?php [ // 檢查郵箱是一個(gè)有效的 "email"地址 ['email', 'email'], ] ?>
allowName: 檢查名字是否允許在郵箱中出現(xiàn) (e.g. John Smith <john.smith@example.com>). 默認(rèn)為 false.
checkDNS,是否檢查電子郵件的域名是否存在,是否有任何一個(gè)A或MX記錄.請(qǐng)注意,這可能檢查由于臨時(shí)DNS問(wèn)題失敗,即使電子郵件地址實(shí)際上是有效的.默認(rèn)為false.
enableIDN,驗(yàn)證過(guò)程是否應(yīng)考慮到IDN(國(guó)際化域名).默認(rèn)為false.需要注意的是,為了使用IDN驗(yàn)證您必須安裝并啟用國(guó)際PHP擴(kuò)展,或異常將被拋出.PHP實(shí)例
8. exist 是否存在PHP實(shí)例
<?php [ // a1 需要在 屬性列中存在 "a1" 這個(gè)好像默認(rèn)就有啊 ['a1', 'exist'], // a1 存在,但它的值將使用A2來(lái)檢查是否存在 ['a1', 'exist', 'targetAttribute' => 'a2'], // a1 和 a2 需要同時(shí)存在, 他們都將接收錯(cuò)誤信息 [['a1', 'a2'], 'exist', 'targetAttribute' => ['a1', 'a2']], // a1 和 a2 需要同時(shí)存在, 只有 a1 將接收錯(cuò)誤信息 ['a1', 'exist', 'targetAttribute' => ['a1', 'a2']], // a1 需要存在 通過(guò)檢測(cè)a2 和 a3 (用 a1 的值) ['a1', 'exist', 'targetAttribute' => ['a2', 'a1' => 'a3']], // a1 需要存在. 如果 a1是一個(gè)數(shù)組, 那么每個(gè)元素都必須存在. ['a1', 'exist', 'allowArray' => true], ] ?>
這個(gè)驗(yàn)證器檢查輸入的值能否被找到在在對(duì)應(yīng)的表的列值里,他只會(huì)在 Active Record model 模型的屬性里起作用.PHP實(shí)例
他支持驗(yàn)證單列或多列PHP實(shí)例
targetClass: 用來(lái)尋找輸入值驗(yàn)證的 Active Record 類(lèi)名. 如果未設(shè)置, 默認(rèn)使用當(dāng)前設(shè)置的模型類(lèi).
targetAttribute: 應(yīng)該用于驗(yàn)證輸入值的存在在targetClass的屬性的名稱(chēng).如果沒(méi)有設(shè)置,將使用目前正在驗(yàn)證的屬性的名稱(chēng).可以使用陣列來(lái)驗(yàn)證多列的存在的同時(shí).數(shù)組的值是將被用于驗(yàn)證存在的屬性,而數(shù)組鍵是其值要驗(yàn)證的屬性.如果鍵和值都是一樣的,你可以指定值.
filter: additional filter to be applied to the DB query used to check the existence of the input value. This can be a string or an array representing the additional query condition (refer to yii\db\Query::where() on the format of query condition), or an anonymous function with the signature function ($query), where $query is the Query object that you can modify in the function.
allowArray: 是否允許輸入的值是一個(gè)array.默認(rèn) false. 若果屬性是 true 而且輸入是一個(gè) array, 那么熟這里的每一個(gè)元素都必須存在在指向的目標(biāo)列里. 注意這個(gè)屬性不能被設(shè)置成true 如果你設(shè)置驗(yàn)證多列通過(guò)設(shè)置 targetAttribute 為一個(gè) array.PHP實(shí)例
9. file 文件驗(yàn)證PHP實(shí)例
<?php [ // 檢查 "primaryImage" 上傳的文件格式是 PNG, JPG 或者 GIF // the file size must be less than 1MB ['primaryImage', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024], ] ?>
檢查是否是一個(gè)有效的上傳文件.PHP實(shí)例
extensions: 允許上傳的文件類(lèi)型列表.他可以是一個(gè)數(shù)組 或者是一個(gè)以逗號(hào)分割的字符串(如. "gif, jpg"). 擴(kuò)展名不區(qū)分大小寫(xiě),默認(rèn)為 null, 意味著所有的文件擴(kuò)展名是允許的.
mimeTypes: 允許上傳的文件資源的媒體類(lèi)型.他可以是一個(gè)數(shù)組 或者是一個(gè)以逗號(hào)或空格分割的字符串 (如. "image/jpeg, image/png"). 不區(qū)分大小寫(xiě),默認(rèn)為 null, 意味著所有的文件擴(kuò)展名是允許的.
minSize: 上傳文件的最小字節(jié)數(shù) 未設(shè)不做判斷.
maxSize: 上傳文件的最大字節(jié)數(shù) 未設(shè)不做判斷.
maxFiles: 最大的上傳文件數(shù) 默認(rèn)為 1, 意味著只能上傳單個(gè)文件對(duì)于單個(gè)文件上傳框. 如果大于 1, 那么 input必須是一個(gè) array 包含至多 maxFiles 數(shù)量的上傳文件.
checkExtensionByMimeType: 是否檢查文件的擴(kuò)展名. 如果由MIME類(lèi)型檢查所產(chǎn)生的擴(kuò)展不同于上傳的文件擴(kuò)展名,該文件將被認(rèn)為是無(wú)效的.默認(rèn)值為true,意思進(jìn)行這樣的檢查.
FileValidator 和 yii\web\UploadedFile 一起使用. .PHP實(shí)例
文件上傳請(qǐng)參考:http://www.yiiframework.com/doc-2.0/guide-input-file-upload.htmlPHP實(shí)例
10. filter 過(guò)濾PHP實(shí)例
<?php [ // 去掉 "username" 和 "email" 輸入空格 跳過(guò)數(shù)組驗(yàn)證 [['username', 'email'], 'filter', 'filter' => 'trim', 'skipOnArray' => true], // 驗(yàn)證正常 "phone" 輸入 ['phone', 'filter', 'filter' => function ($value) { // 驗(yàn)證正確性手機(jī)代碼 return $value; }], ] ?>
這個(gè)驗(yàn)證器驗(yàn)證不了數(shù)據(jù). 相反的, it applies a filter on the input value and assigns it back to the attribute being validated.PHP實(shí)例
filter: 一個(gè)php回調(diào)函數(shù)定義一個(gè)filter. 他可能是一個(gè)全局函數(shù)的名字, 一個(gè)匿名函數(shù)等等. 函數(shù)的原型一定是<?php function ($value) { return $newValue; }? ?>這個(gè)屬性必須設(shè)置.PHP實(shí)例
skipOnArray: 當(dāng)輸入只是一個(gè)數(shù)組的時(shí)候是否跳過(guò).默認(rèn)是 false. 請(qǐng)注意,如果過(guò)濾器無(wú)法處理數(shù)組輸入,您應(yīng)該將此屬性設(shè)置為true.否則,可能會(huì)發(fā)生一些PHP錯(cuò)誤.PHP實(shí)例
小提示: 去空格直接用trim驗(yàn)證.PHP實(shí)例
小提示: 部分封裝可以直接使用系統(tǒng)函數(shù)如intval:PHP實(shí)例
<?php ['property', 'filter', 'filter' => 'boolval'], ['property', 'filter', 'filter' => 'intval'], ?>
11. image 圖片PHP實(shí)例
<?php [ // 檢查 "primaryImage" 是否是一個(gè)有效的圖片 且大小合適 ['primaryImage', 'image', 'extensions' => 'png, jpg', 'minWidth' => 100, 'maxWidth' => 1000, 'minHeight' => 100, 'maxHeight' => 1000, ], ] ?>
文件驗(yàn)證器的擴(kuò)展:PHP實(shí)例
minWidth: 最小的寬度 不設(shè)無(wú)限制.
maxWidth: 最大的寬度 不設(shè)無(wú)限制.
minHeight: 最小的高度 不設(shè)無(wú)限制.
maxHeight: 最大的高度 不設(shè)無(wú)限制.PHP實(shí)例
12. in 在那一個(gè)數(shù)組里面的值PHP實(shí)例
<?php [ // 檢查 "level" 是 1, 2 或 3 ['level', 'in', 'range' => [1, 2, 3]], ] ?>
檢查輸入的值是否存在于給定的系列值的列表中.PHP實(shí)例
range: 給定范圍值的列表.
strict: 輸入值和給定值之間的比較結(jié)果是否應(yīng)嚴(yán)格(的類(lèi)型和值必須相同).默認(rèn)為false.
not: 驗(yàn)證結(jié)果是否應(yīng)該被反轉(zhuǎn).默認(rèn)為false.當(dāng)此屬性設(shè)置為true,驗(yàn)證檢查,輸入的值不能是給定列表的值中.
allowArray: 是否允許輸入值是一個(gè)數(shù)組.如果這是真的,并輸入值是一個(gè)數(shù)組,數(shù)組中的每個(gè)元素必須值的給定列表中找到,或驗(yàn)證會(huì)失敗.PHP實(shí)例
13. integer 整型驗(yàn)證PHP實(shí)例
<?php [ // 檢查 "age" 是一個(gè)整型值 ['age', 'integer'], ] ?>
max: 上限 不設(shè)不檢查.
min: 下限 不設(shè)不檢查..PHP實(shí)例
14. match 正則匹配檢查PHP實(shí)例
<?php [ // 檢查 "username" 以字母開(kāi)頭,并且只包含文字字符 ['username', 'match', 'pattern' => '/^[a-z]\w*$/i'] ] ?>
輸入值指定的正則表達(dá)式匹配驗(yàn)證檢查.PHP實(shí)例
pattern: 輸入值必須匹配的規(guī)則. 屬性必須設(shè)置,否則將會(huì)拋出異常.
not: 是否反轉(zhuǎn)驗(yàn)證結(jié)果. 默認(rèn) false.PHP實(shí)例
15. number 數(shù)字檢查PHP實(shí)例
<?php [ // 檢查 "salary" 是一個(gè)數(shù)字 ['salary', 'number'], ] ?>
相當(dāng)于double驗(yàn)證器.PHP實(shí)例
max: 上限 不設(shè)不檢查.
min: 下限 不設(shè)不檢查.PHP實(shí)例
16. required? 是否為空檢查PHP實(shí)例
<?php [ // 檢查 "username" 和 "password" 不是空的 [['username', 'password'], 'required'], ] ?>
該驗(yàn)證器阻止用戶(hù)提交空的表單數(shù)據(jù).PHP實(shí)例
requiredValue: 應(yīng)該輸入的值. 如果未設(shè) 意味著輸入值 不應(yīng)該為空.
strict: 驗(yàn)證一個(gè)值時(shí)是否應(yīng)該檢查數(shù)據(jù)類(lèi)型. 默認(rèn)false.當(dāng) requiredValue未設(shè)置時(shí),如果這個(gè)屬性是 true, 驗(yàn)證器會(huì)檢查輸入值不嚴(yán)格null;如果改屬性false,驗(yàn)證器將使用一個(gè)松散的規(guī)則來(lái)確定一個(gè)值是空的或不. 當(dāng) requiredValue設(shè)置了,輸入和requiredValue之間的比較也將檢查數(shù)據(jù)類(lèi)型,如果此屬性為true.PHP實(shí)例
17. safe? 標(biāo)記輸入是安全屬性PHP實(shí)例
<?php [ // 標(biāo)記 "description" 是一個(gè) safe 的屬性 ['description', 'safe'], ] ?>
這個(gè)驗(yàn)證器不會(huì)執(zhí)行數(shù)據(jù)驗(yàn)證.相反, 它是用來(lái)標(biāo)記的屬性是一個(gè)安全屬性(我猜作用是不會(huì)進(jìn)行字符轉(zhuǎn)義吧).PHP實(shí)例
18. string 字符串驗(yàn)證PHP實(shí)例
<?php [ // 檢查 "username"是一個(gè) string 而且長(zhǎng)度在 4 和 24 之間 ['username', 'string', 'length' => [4, 24]], ] ?>
這個(gè)驗(yàn)證器檢查輸入的值是一個(gè)字符串且長(zhǎng)度在確定的值的范圍里.PHP實(shí)例
length: 指定待驗(yàn)證的字符串的長(zhǎng)度. 可以指定以下形式:
?? 一個(gè)整數(shù): 字符串的精確長(zhǎng)度;
?? 單個(gè)數(shù)組元素: 輸入的最小長(zhǎng)度 (e.g. [8]). 必須超過(guò)或等于這個(gè)數(shù)
?? 兩個(gè)數(shù)組元素: 輸入的最小長(zhǎng)度和最大長(zhǎng)度 (e.g. [8, 128]).
min: 輸入字符串的最小長(zhǎng)度 未設(shè)不限制.
max: 輸入字符串的最大長(zhǎng)度 未設(shè)不限制..
encoding: 輸入字符串的編碼 未設(shè)默認(rèn) UTF-8.PHP實(shí)例
19. trim 去空格PHP實(shí)例
<?php [ // 去掉 "username" 和 "email" 兩邊的空格 [['username', 'email'], 'trim'], ] ?>
不進(jìn)行數(shù)據(jù)驗(yàn)證 只進(jìn)行去空格 如果屬性是一個(gè)數(shù)組 將會(huì)自動(dòng)忽略此過(guò)濾.PHP實(shí)例
20. unique 唯一性驗(yàn)證PHP實(shí)例
<?php [ // a1 需要是在由“a1”屬性表示的列中的唯一 ['a1', 'unique'], // a1 必須是唯一的,但列a2將用于檢查的a1值的唯一性 ['a1', 'unique', 'targetAttribute' => 'a2'], // a1和a2的需要是唯一的,并且它們都將收到錯(cuò)誤消息 [['a1', 'a2'], 'unique', 'targetAttribute' => ['a1', 'a2']], // a1和a2的需要是唯一的,只有a1將收到錯(cuò)誤消息 ['a1', 'unique', 'targetAttribute' => ['a1', 'a2']], // a1需要通過(guò)檢查的兩個(gè)a2和a3的唯一性(使用a1的值)是唯一的 ['a1', 'unique', 'targetAttribute' => ['a2', 'a1' => 'a3']], ] ?>
這驗(yàn)證檢查,如果輸入的值是表列中的唯一.它僅適用于活動(dòng)記錄模型的屬性.它支持驗(yàn)證對(duì)任何單個(gè)列或多個(gè)列.PHP實(shí)例
targetClass: 應(yīng)該是被用于驗(yàn)證查找輸入值的活動(dòng)記錄類(lèi)的名字.如果沒(méi)有設(shè)置,將要使用的類(lèi)目前正在驗(yàn)證該模型的.
targetAttribute: 應(yīng)該用來(lái)驗(yàn)證輸入值的唯一性在targetClass的屬性的名稱(chēng).如果沒(méi)有設(shè)置,將使用目前正在驗(yàn)證的屬性的名稱(chēng).可以使用陣列來(lái)驗(yàn)證多列的唯一性的同時(shí).數(shù)組的值是將被用于驗(yàn)證唯一性的屬性,而數(shù)組鍵是其值要驗(yàn)證的屬性.如果鍵和值都是一樣的,你可以指定的值.
filter: a額外的過(guò)濾器被應(yīng)用到用于檢查輸入值的唯一性的數(shù)據(jù)庫(kù)查詢(xún).這可以是一個(gè)字符串或代表附加查詢(xún)條件的數(shù)組(參考 yii\db\Query::where() 查詢(xún)條件的格式), 或者是一個(gè)匿名函數(shù)像: function ($query), 其中$query是你可以在函數(shù)修改查詢(xún)對(duì)象.
http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detailPHP實(shí)例
21. url 地址驗(yàn)證PHP實(shí)例
<?php [ // 檢查 "website" 是一個(gè)有效的 URL. 前置 "http://" 到 "website" 屬性 // 如果它不具有一個(gè)URI模式 ['website', 'url', 'defaultScheme' => 'http'], ] ?>
validSchemes: 一個(gè)數(shù)組指定URI方案應(yīng)被認(rèn)為有效.默認(rèn)為['HTTP','HTTPS'],意思是HTTP和HTTPS URL被認(rèn)為是有效的.
defaultScheme: 默認(rèn)URI方案要預(yù)先考慮到輸入,如果它不具有方案的一部分.默認(rèn)為null,意味著不修改輸入值.
enableIDN:驗(yàn)證是否應(yīng)考慮到IDN(國(guó)際化域名).默認(rèn)為false.需要注意的是,為了使用IDN驗(yàn)證您必須安裝并啟用國(guó)際PHP擴(kuò)展,否則異常將會(huì)被拋出.PHP實(shí)例
更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Yii框架入門(mén)及常用技巧總結(jié)》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《smarty模板入門(mén)基礎(chǔ)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》PHP實(shí)例
希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助.PHP實(shí)例
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/2603.html