المرجو شرح دالة (الدالة في الموضوع)

السلام عليكم

عندما كنت اتجول في لموقع وجدت أحد المواضيع بخصوص طلب دالة

صراحة دخلت للرابط المرفق من طرف الأخ seidbenseid

ووجدت هذه الدالة

<?php
// by seidbenseid
// from arabia.io
// algerian HaXoor

function get_all_urls ($url) {
    if (function_exists ("curl_exec")) {
            $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);
            $data = curl_exec ($ch);
    }
    else
            $data = file_get_contents ($url);

    $urls = array ();

    if (preg_match_all ('#<a\s*(.*?)>#i', $data, $attrs)) {
            foreach ($attrs[1] as $attr) {
                    if (preg_match ('#href\s*=\s*(\'|")(.*?)(\'|")#i', $attr, $href)) {
                            if ($href[2] && !in_array ($href[2], $urls))
                                    $urls[] = $href[2];
                    }
            }
    }

    return $urls;
}

?>

المرجو شرح طريقة تطبيقها

يعني كيف آتي بالروابط و أضعهم في جدول


التعليق السابق

والله ياأخي أنا ماعارف أشكرك إزاي على كرمك و سرعتك في الرد

بالفعل أنا قمت بالأمر لاكن كل ما جاء في الصفحة هو

ArrayArrayArrayArrayArrayArray

آسف لتأخري في الرد

انسخ الدالة فوق ثم تحتها ضع

$urls = get_all_urls ('

https://arabia.io '); foreach ($urls as $url) { echo $url . ''; }

إذا كنت مستعدا لفهم طريقة عمل الدالة فقط إسأل!

إذا كنت مستعدا لفهم طريقة عمل الدالة فقط إسأل!

بالطبع أخي هذا إن لم أكثر عليك بالطلبات

أبدأ، لأني سأعطيك مفاتيح البحث والباقي عليك

الدالة فوق تستخدم دالة أخرى لجلب المحتوى اسمها : curl

وﻷان دالة curl لا تكون متوفرة على بعض السيرفرات فإنها تتأكد من وجودها عبر

if (function_exists ("curl_exec")) {

إذا لم تكن موجودة تستخدم البديل file_get_contents وهي دالة أخرى تجلب المحتوى، ويوجد غيرهما لكن ليس بنفس الكفاءة الآن جرب التالي echo file_get_contents('

');

ستجد أنك جلبت صفحة جوجل بأكملها ...

الآن لنقل أنه تبحث عن شيء ما في الصفحة، روابط مثلا (في حالتك)

هنا عليك استخدام ما يسمى بالتعابير القياسية، مختصرة في Regex وذلك لفلترة المحتوى وجلب ما يطابق التعبير القياسي

حسنا، Regex ليس شيئا تتعلمه في ليلة، لكن المبدأ ليس بتلك الصعوبة،

باستخدام الفلترة المناسبة تحصل على ما تتيرد من الصفحة، مثل : روابط، فقرات، صور ...

نكتفي بهذا الآن، أي سؤال أنا والإخوة موجودون!