السلام عليكم
اعتقد ان العنوان واضح
انا اريد دالة للتحقق من وجود رابط
وشكرا
هل تقصد التحقق من سلامة الرابط حرفيا (يعني عدم إحتوائه على أحرف ورموز غريبة..الخ) أم تقصد التحقق أن رابط الموقع شغال ويمكن الوصول إليه ؟؟
في الحالة الأولى بإمكانك إستعمال الدالة filter_var، مثال :
if (filter_var ("
http://127.0.0.1 ", FILTER_VALIDATE_URL) === FALSE) { die ('Not a valid URL'); }
وإذا كنت تقصد الحالة الثانية، فهذه دالة بسيطة عملتها للقيام بذلك
function url_exists ($url) {
$ch = curl_init ($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt ($ch, CURLOPT_HEADER, false);
curl_setopt ($ch, CURLOPT_ENCODING, false);
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "HEAD");
curl_setopt ($ch, CURLOPT_HEADER, true);
curl_setopt ($ch, CURLOPT_NOBODY, true);
curl_exec ($ch);
return curl_getinfo ($ch, CURLINFO_HTTP_CODE) == 200 ? true : false;
}
الإستعمال :
if (url_exists ("
http://127.0.0.1 /")) echo "URL exists"; else echo "URL not found";
بالتوفيق لك
تحية طيبة
جرب إحدى الكودين ، - ذلك يعتمد على مكتبة curl هل هي مفعلة أولا - في حال كانت مفعلة جرب الطريقة الأقصر :
$url = العنوان المطلوب
return (!$fp = curl_init($url));
في حال غير مفعلة جرب الكود الآتي :
$file = العنوان المطلوب
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
$exists = false;
} else { $exists = true;
}
كل التحية
التعليقات