فهرست مستندات پروژه
شماره تلفن
اعتبارسنجی و یکسانسازی شماره موبایل و تلفن ثابت ایران.
PhoneNumber شماره موبایل و ثابت ایران را میخواند، شکل محلی و E.164 میدهد و پیششماره را در جدول داخلی جستجو میکند.
نمونه قابل اجرا
کد را کنار vendor/ ذخیره و اجرا کنید:
<?php
require 'vendor/autoload.php';
use Eram\Abzar\Validation\PhoneNumber;
$phone = PhoneNumber::from('+98 912 123 4567');
echo $phone->value(), "\n";
echo $phone->e164(), "\n";
09121234567
+989121234567
قواعد و نکتهها
ارقام فارسی و عربی تبدیل میشوند و فاصله، خط تیره، پرانتز، نقطه و علامتهای نامرئی حذف میشوند. +98، 0098 و 98 در ورودی دوازدهرقمی به 0 تبدیل میشوند. برای عدد دهرقمی با شروع 9 یا کد منطقه شناختهشده، صفر اول اضافه میشود.
موبایل الگوی 09 و نه رقم دیگر دارد. تلفن ثابت با 0[1-8] شروع میشود و در مجموع یازده رقم دارد؛ سه رقم اول کد منطقه است. 00 شروع شماره خارجی محسوب میشود.
normalize() مقدار محلی یا null میدهد. value()، e164()، formatted()، formatted(true) و masked() برای ذخیره و نمایش هستند. isMobile() و isLandline() نوع را مشخص میکنند. operator() و operatorEnum() برای ثابت null هستند؛ areaCode()، city()، province() و provinceEnum() برای موبایل null هستند. برای 02188887777، نمایش محلی 021 8888 7777 و ماسک 021 **** 7777 است.
شماره 09802002580 با هشدار PHONE_NUMBER.UNKNOWN_OPERATOR معتبر است و اپراتور null دارد. 01234567890 هم با هشدار PHONE_NUMBER.UNKNOWN_AREA_CODE معتبر است و شهر و استان ندارد. برای الزام lookup کامل از isStrictlyValid() استفاده کنید.
extractAll() شمارههایی با 0، +98 یا 0098 را پیدا میکند؛ عدد دهرقمی بدون پیشوند را کنار میگذارد. fake() موبایل میسازد و fake('912') پیششماره را مشخص میکند. برای ثابت از fake(type: PhoneNumberType::LANDLINE, areaCode: '021') استفاده کنید. آرگومان ناسازگار با نوع یا شکل نامعتبر، FAKE.INVALID_ARGUMENT ایجاد میکند.
هیچ OTP یا استعلام مشترکی انجام نمیشود. معتبر بودن شماره به معنی فعال بودن یا مالکیت نیست. ترابرد میتواند اپراتور فعلی را از جدول پیششماره متفاوت کند. شماره آزمایشی ممکن است واقعی باشد.
کدهای خطا
کدهای همین بخش و پیام دقیق کتابخانه در جدول کدهای خطا آمده است. برای شرطهای برنامه از کد استفاده کنید، نه متن پیام.
مطالب مرتبط: اعتبارسنجی، مدیریت خطا، اتصال به فریمورک.