انتقل إلى محتوى الدرس

Validating IPs and Domains with Flags فحص عناوين IPv4 و IPv6 والنطاقات بالأعلام المتخصصة

اضبط حدود النطاقات الرقمية والقيم الافتراضية وأعلام التحقق من العناوين وفحص المدخلات مباشرة عبر filter_var وfilter_input في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تُخصّص أعلام الفلاتر (Flags) قواعد التحقق بدقة باستخدام معامل الدمج الثنائي (|) أو عبر المفتاح "flags" في مصفوفة الخيارات.

  • ادمج FILTER_VALIDATE_IP مع الأعلام FILTER_FLAG_IPV4 أو FILTER_FLAG_IPV6 أو FILTER_FLAG_NO_PRIV_RANGE لمنع العناوين الداخلية الخاصة.
  • ادمج FILTER_VALIDATE_DOMAIN مع العلم FILTER_FLAG_HOSTNAME للتحقق من أسماء النطاقات القياسية.
  • استخدم العلم FILTER_NULL_ON_FAILURE لإرجاع null عند فشل التحقق بدلاً من false (مفيد جداً مع القيم المنطقية).

يدمج المعامل | العلمين معاً فيرفض العنوان الداخلي الخاص 10.0.0.1 ويقبل عنوان IPv4 العام 93.184.216.34.

PHP
<?php
$ipFlags = FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE;

$lanIp = filter_var("10.0.0.1", FILTER_VALIDATE_IP, $ipFlags);
$pubIp = filter_var("93.184.216.34", FILTER_VALIDATE_IP, $ipFlags);
$host  = filter_var("api.closetag.com", FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME);

echo "LAN IP valid? " . ($lanIp ? "Yes" : "No") . "\n";
echo "Public IP   : $pubIp | Host: $host\n";