Update: 2026-07-12 05:40:28
This commit is contained in:
@@ -234,3 +234,32 @@ function getInternalSocketKey(): string
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* تطبيع رقم الهاتف إلى الصيغة الدولية بدون + (E.164 بدون +)
|
||||
* ناتج ثابت لأي مدخل من JO/SY/EG:
|
||||
* الأردن → 9627XXXXXXXX
|
||||
* سوريا → 9639XXXXXXX
|
||||
* مصر → 20XXXXXXXXXX
|
||||
* يُستخدم دائماً قبل التشفير وقبل الاستعلام.
|
||||
*/
|
||||
function normalizePhone(string $phone): string
|
||||
{
|
||||
$d = preg_replace('/\D+/', '', $phone);
|
||||
|
||||
// سوريا: 09X → 963X | 9X (9 أرقام) → 963X | 963... مكتمل
|
||||
if (strlen($d) === 10 && str_starts_with($d, '09')) return '963' . substr($d, 1);
|
||||
if (strlen($d) === 9 && str_starts_with($d, '9')) return '963' . $d;
|
||||
if (strlen($d) === 12 && str_starts_with($d, '963')) return $d;
|
||||
|
||||
// الأردن: 07X → 962X | 7X (9 أرقام) → 962X | 962... مكتمل
|
||||
if (strlen($d) === 10 && str_starts_with($d, '07')) return '962' . substr($d, 1);
|
||||
if (strlen($d) === 9 && str_starts_with($d, '7')) return '962' . $d;
|
||||
if (strlen($d) === 12 && str_starts_with($d, '962')) return $d;
|
||||
|
||||
// مصر: 01X → 20X | 201... مكتمل
|
||||
if (strlen($d) === 11 && str_starts_with($d, '01')) return '20' . substr($d, 1);
|
||||
if (strlen($d) === 13 && str_starts_with($d, '20')) return $d;
|
||||
|
||||
return $d; // رقم خارج النطاق — يُعاد كما هو
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user