فهرست مستندات پروژه

کد ملی

Abzar0.8.1مشاهده منبعفارسی / انگلیسی

بررسی ساختار و 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 رخ می‌دهد.

این بررسی استعلام ثبت احوال یا تایید مالکیت نیست. شهر صدور محل سکونت فعلی را نشان نمی‌دهد. خروجی آزمایشی ممکن است متعلق به فرد واقعی باشد؛ آن را وارد داده واقعی نکنید.

کدهای خطا

کدهای همین بخش و پیام دقیق کتابخانه در جدول کدهای خطا آمده است. برای شرط‌های برنامه از کد استفاده کنید، نه متن پیام.

مطالب مرتبط: اعتبارسنجی، مدیریت خطا، اتصال به فریم‌ورک.

جستجو در مستندات

در همه پروژه‌ها جستجو کنید. با بستن این پنجره به راهنما برمی‌گردید.

Tab برای جابه‌جایی · Enter برای باز کردنEsc برای بستن