معهد دعم اتش فى اى بى اس لحلول الويب - Powered by vBulletin


 
 
النتائج 1 إلى 2 من 2

الموضوع: كود التحقق من وجود رابط في PHP Check the existence of a URL in PHP

  1. #1
    المشرف العام
    الصورة الرمزية HVIPS1


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 3
    الدولة: eygpt
    المشاركات: 2,778
    HVIPS1 غير متواجد حالياً

    كود التحقق من وجود رابط في PHP Check the existence of a URL in PHP


    checkUrl يسمح حتى 4 الموجهات. يتم إرجاع كافة رؤوس الدولة في مفتاح "مواقع" للمجموعة (والمواقع التي تبدأ ب "/" يتم حلها إلى المضيف الماضي.

    كود:
    01var_export(checkUrl('http://microsoft.com/ie'));02 
    03// outputs
    04 
    05array (
    06  'success' => true,
    07  'locations' => 
    08  array (
    09    0 => 'http://www.microsoft.com/ie',
    10    1 => 'http://www.microsoft.com/ie/',
    11    2 => 'http://www.microsoft.com/windows/int...r/default.aspx',
    12  ),
    13  'metaData' => 
    14  array (
    15    'wrapper_data' => 
    16    array (
    17      ... abunch of HTTP headers
    18    ),
    19    'wrapper_type' => 'http',
    20    'stream_type' => 'tcp_socket/ssl',
    21    'mode' => 'r+',
    22    'unread_bytes' => 3478,
    23    'seekable' => false,
    24    'uri' => 'http://microsoft.com/ie',
    25    'timed_out' => false,
    26    'blocked' => true,
    27    'eof' => false,
    28  ),
    29)

  2. #2
    المشرف العام
    الصورة الرمزية HVIPS1


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 3
    الدولة: eygpt
    المشاركات: 2,778
    HVIPS1 غير متواجد حالياً

    رد: كود التحقق من وجود رابط في PHP Check the existence of a URL in PHP


    كود:
    01function checkUrl($url) {02    $root = _getRoot($url);
    03    $ctx = stream_context_create(array(
    04       'http' => array(
    05            'max_redirects' => 5, // allows 4 redirects :/
    06            'timeout' => 5,
    07        )
    08    ));
    09    $fp = @fopen($url, 'r', false, $ctx);
    10    $ret['success'] = false;
    11    if (! $fp) {
    12        return $ret;
    13    }
    14    $ret['locations'] = array();
    15    $ret['metaData'] = stream_get_meta_data($fp);
    16    fclose($fp);
    17    // analyze HTTP headers
    18    foreach ($ret['metaData']['wrapper_data'] as $line) {
    19        if (preg_match('@^Location: (.*)$@i', $line, $m)) {
    20            if ($m[1][0] === '/') {
    21                // root-relative URI
    22                $m[1] = $root . $m[1];
    23            } elseif (strpos($m[1], '://') >= 4) {
    24                // full URL
    25                $root = _getRoot($m[1]);
    26            }
    27            $ret['locations'][] = $m[1];
    28        }
    29        if (preg_match('@^HTTP/1\\.[01] 200@i', $line, $m)) {
    30            $ret['success'] = true;
    31        }
    32    }
    33    return $ret;
    34}
    35 
    36function _getRoot($url) {
    37    list($proto, $url) = explode('://', $url, 2);
    38    list($host) = explode('/', $url, 2);
    39    return $proto . '://' . $host;
    40}

 

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •