فهرست مستندات پروژه
کد ملی
بررسی ساختار و checksum کد ملی و lookup محل صدور.
NationalId کد ملی دهرقمی را بررسی میکند. سه رقم اول برای lookup محل صدور استفاده میشود.
نمونه قابل اجرا
کد را کنار vendor/ ذخیره و اجرا کنید:
<?php
require 'vendor/autoload.php';
use Eram\Abzar\Validation\NationalId;
$id = NationalId::from('۰۰۱۳۵۴۲۴۱۹');
echo $id->value(), "\n";
echo $id->city(), "\n";
0013542419
تهران مرکزی
قواعد و نکتهها
- ارقام فارسی و عربی به انگلیسی تبدیل و فاصله، خط تیره و علامتهای نامرئی حذف میشوند.
- ورودی هشت یا نهرقمی خطای
LIKELY_TRUNCATEDدارد؛ ممکن است صفرهای اول در Excel یا cast به عدد از بین رفته باشند. فقط اگر علت را میدانید باstr_pad()صفر اضافه کنید. - ده رقم یکسان،
0123456789و صفر بودن همه رقمهای چهارم تا نهم رد میشوند. - رقم آخر باید با checksum پیمانه ۱۱ سازگار باشد.
کد 2540201288 checksum معتبر دارد، ولی پیششماره آن در جدول نیست. isValid() برابر true، isStrictlyValid() برابر false و هشدار NATIONAL_ID.UNKNOWN_CITY_CODE است. شهر و استان null میشوند. from()، tryFrom() و extractAll() آن را میپذیرند.
متدهای value()، cityCode()، city()، province() و provinceEnum() جزئیات را میدهند. برای نمونه بالا شهر «تهران مرکزی»، استان «تهران» و کد شهر 001 است. detail() نتیجه اعتبارسنجی یک NationalIdDetails میدهد. تبدیل به string مقدار کامل و JSON فیلدهای value، city_code، city و province را دارد.
extractAll() عددهای دهرقمی پیوسته را از چپ به راست بررسی میکند. این عددها ممکن است با کد پستی اشتباه شوند. fake() کد معتبر تصادفی و fake('001') کد با پیششماره مشخص میسازد. پیششماره باید سه رقم باشد، وگرنه ValidationException با FAKE.INVALID_ARGUMENT رخ میدهد.
این بررسی استعلام ثبت احوال یا تایید مالکیت نیست. شهر صدور محل سکونت فعلی را نشان نمیدهد. خروجی آزمایشی ممکن است متعلق به فرد واقعی باشد؛ آن را وارد داده واقعی نکنید.
کدهای خطا
کدهای همین بخش و پیام دقیق کتابخانه در جدول کدهای خطا آمده است. برای شرطهای برنامه از کد استفاده کنید، نه متن پیام.
مطالب مرتبط: اعتبارسنجی، مدیریت خطا، اتصال به فریمورک.