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

الموضوع: [شرح] الحصول على معلومات وسم Meta من صفحة أخرى ..

  1. #1

    [شرح] الحصول على معلومات وسم Meta من صفحة أخرى ..



    بسم الله الرحمن الرحيم

    الحمدلله ، والصلاة والسلام على رسول الله ، محمد بن عبدالله ، وبعد ؛

    إخوتي أعضاء سوالف سوفت معلمين ومتعلمين .. أحببت أن أقدم شيئاً حيث أني لم أقدم شيء لهذا الموقع الغالي الذي قدم لي الكثير ...

    أعتذر عن الإطالة في المقدمة وعن تأخري في طرح أي شيء هنا .. لكن بالتأكيد العامل الزمني الذي لم يعد متوفراً في هذه الأيام قد قضى على محاسننا ..!

    سوف أشرح القليل عن دالة get_meta_tags ثم نتطرق إلى مثال بسيط بإذن الله تعالى ..

    في البداية هذه الدالة ظهرت في PHP 3 منذ الإصدارة 3.0.4 وبقيت في PHP 4 ولا تزال في PHP 5 ..

    وظيفة هذه الدالة هي إعادة مصفوفة تحتوي على خصائص وسوم meta من ملف معين ..

    صيغة الدالة العامة هي:
    كود PHP:
    array get_meta_tags string filename [, bool use_include_path] ) 
    حيث filename هو عنوان الملف الذي تريد جلب معلومات وسوم meta فيه .. وفي الوسوم التي توجد في الهيدر لتعريف بعض الأمور الخاصة بالصفحة .. ويمكن ان يكون الملف محلي ( ضمن نطاق السيرفر الذي تعمل عليه ) .. أو صفحة انترنت خارج نطاق السيرفر ...
    سوف يتم فتح هذا الملف وطباعة محتوياته سطراً سطراً من اسطر وسوم meta انتهاءً بوسم الإغلاق للهيد ..
    كود PHP:
    </head
    اما الباراميتر الثاني use_include_path والذي هو من نوع منطقي Boolean كما هو واضح في الصيغة العامة للدالة .. فإنه لو كان TRUE فسوف يتم تضمين الملف من مسار مجلد التضمين الأساسي في البي إتش بي .. للمزيد يمكنك الاطلاع على اعدادات البي اتش بي بخصوص هذا الاعداد:
    http://www.php.net/manual/en/ini.cor...i.include-path

    لنفرض أنه لدينا وسوم ميتا التالية:
    كود PHP:
    <meta name="author" content="name">
    <
    meta name="keywords" content="php documentation">
    <
    meta name="DESCRIPTION" content="a php manual">
    <
    meta name="geo.position" content="49.33;-86.59">
    </
    head> <!-- هنا تتوقف عملية سحب البيانات --> 
    قيمة الخاصية name في وسم الميتا سيتم اخذها على اساس انها مفتاح للعنصر في تلك المصفوفة .. فكل عنصر يتكون من المفتاح ( اسم الميتا تاج ) .. وقيمة هذا العنصر هي قيمة الخاصبة content للميتا تاج ..
    إذا كان هناك أكثر من وسم ميتا يتضمن نفس قيمة الخاصية name فسيتم إعادة قيم الوسم الأخير فقط ..!

    ملاحظة مهمة: جميع الرموز الخاصة في قيمة اسم الميتا تاج يتم تحويلها إلى "_" .. اما باقي الاحرف فيتم تحويلها الى lowercase ( حروف صغيرة ) ..

    لنأخذ مثال بسيط يقوم بطباعة محتويات وسوم الميتا في المثال السابق بعد افتراض تخزين الملف السابق باسم test.html في نفس مسار الملف الذي سوف تنشئه الان :
    كود PHP:
    <?php

    $meta 
    get_meta_tags('test.html'); // تنفيذ الدالة بحيث يصبح المتغير عبارة عن مصفوفة تحتوي على القيم التي ذكرناها سابقاً

    // لاحظ هنا كيف اصبحت جميعها حروف صغيرة واستبدلت "." بـ "_"
    echo $tags['author'];      // name
    echo $tags['keywords'];    // php documentation
    echo $tags['description'];  // a php manual
    echo $tags['geo_position']; // 49.33;-86.59
    ?>
    الآن دعونا نفكر أكثر .. لو أردنا مثلاً تفحص موقع معين لمعرفة هل هو يستخدم vBulletin مثلاً والحصول على إصدار نسخته .. ماذا سنفعل عندها ؟؟
    تأمل في الكود التالي قليلاً :
    كود PHP:
    <?php

    $url 
    "http://www.vbulletin.com/forum";

    $meta get_meta_tags($url);
    while (list(
    $key$value) = each($meta)) {
        if (
    $key == "generator" && preg_match("/^vBulletin/si"trim($value))) {
            echo 
    '<span dir="rtl">هذا الموقع يعتمد على برنامج vBulletin الإصدار'trim(preg_replace("/vbulletin/si"""$value)) .'</span>';
        } else {
            echo 
    '<span dir="rtl">لا يستخدم vBulletin.</span>';
        }
    }

    ?>
    لو فكرت قليلاً لوجدتنا حددنا عنوان الموقع وهو http://www.vbulletin.com/forum في البداية في متغير قمنا بتسميته url$ ...
    ثم جلبنا إلى المتغير meta$ مصفوفة بمعلومات ميتا تاج في تلك الصفحة ...
    بعدها بدأنا بتفريغ محتويات تلك المصفوفة بواسطة حلقة while مستخدمين دالة list التي قمت بشرح كيفية استخدامها في 09-01-2006 في الرابط التالي:
    http://www.swalif.net/softs/showthread.php?t=144215

    وتأكدنا من ان المفتاح key وهو كما ذكرت سابقاً نفس خاصية name في الميتا نفسها .. لذلك فسنضعه نفسه مع جعل الاحرف صغيرة واستبدال الرموز الخاصة بـ "_" .. تأكدنا انه generator حيث هناك يقوم منتدى vBulletin بطباعة النسخة والاصدار ..

    وتأكدنا ان المتغير يحتوي على vBulletin في بدايته ثم طبعنا الاصدار بحذف كلمة vBulletin من خاصية content التي جعلناها هنا ( value$ ) وطبعنا رقم الاصدار بعد حذف المسافات البيضاء قبله وبعده ..

    وان لم يكن vBulletin بعدها سيطبع انه ليس vBulletin ...

    أعتقد أن هذا المثال واضح .. ان شاء الله تعالى ..

    أما ان كنت تريد الحصول على وسم اخر ليس meta فقد وجدت في المانيوال شخصاً قد كتب هذا الكود وبالطبع يمكن تعديله او استخدام اكودا اخرى تفي بالغرض حيث أنه فقط للمساعدة:
    كود PHP:
    <?php

    $page 
    "http://www.mysite.com/apage.php";

       
    // tags
       
    $start '<atag>';
       
    $end '<\/atag>';

       
    // open the file
       
    $fp fopen$page'r' );

       
    $cont "";

       
    // read the contents
       
    while( !feof$fp ) ) {
           
    $buf trimfgets$fp4096 ) );
           
    $cont .= $buf;
       }
       
       
    // get tag contents
       
    preg_match"/$start(.*)$end/s"$cont$match );

       
    // tag contents
       
    $contents $match]; 

    ?>
    أتمنى أن يكون أي شخص قد استفاد حتى لو القليل من هذا الدرس .. وانتظروني مرة اخرى في دروس اخرى ان شاء الله تعالى
    تحياتي، sBForum :looking:





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    389


    اهلا بك يا أشرف ..
    و درس جميل نتمنى أن لا تنقطع ...





    __________________
    أرجوا من الجميع ان يسامحوني ، سواء عرفوني أو لم يعرفوني !! ، ارجوا من جميع من قد اكون اسأت اليهم أن يصفحوا عني ، ومن لديهم عندي حقوق أن يطلبوها مني .. جمعنا الله في الجنان .

  3. #3


    اهلاً بك فيصل وشكراً لردك ... واعذرني عالتقصير





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  4. #4
    Banned
    تاريخ التسجيل
    May 2006
    المشاركات
    97


    والله العظيم حاولت أفهم وقريت الموضوع 3 مرات .. وما فهمت
    مدري يمكن عشان الشرح خاص للمحترفين والفاهيمن في المصفوفات والكلام الي قلته






  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    اهلا بك أشرف شرح رائع ... ننتظر المزيد .





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  6. #6


    اخ CodeR X احنا هنا لتبادل المعلومات ما في مشكلة ان شاء الله بشرحه بطريقة اخرى او بشرح المصفوفات اذا لقيت وقت وشكراً لمرورك وتعقيبك

    jadweb.com من زمان عنك يا اخي .. شكراً لمرورك وتعقيبك

    تحياتي، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  7. #7


    بارك الله فيك اخي نتمنى منك المزيد.. دروسك حلوة





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  8. #8


    حياك الله اخي Nadorino أتمنى ان تكون قد استفدت واستمتعت في الدروس .. واسمحلي لتقصيري :$





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  9. #9


    كلمة مبدع قليلة بحقك استاذ أشرف ..

    لكن سؤالي هل هي تفرق بين

    <meta> الشكل الغير قياسي.

    و

    <meta />

    ?





    __________________
    موقع رياض القرآن متخصص بالقرآن الكريم
    WwW.Ryadh-Quran.NeT

  10. #10
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    sBForum حمد لله على السلامة .. لك مدة غائب .. أسعدتني عودتك أخي

    ودرس جميل تشكر عليه .. ولدي سؤال إذا سمحت .. عند القراءة من موقع معين لأدرجها بموقعي مثلا .. أصادف أحيانا مشكلة في وسوم الهتمل لأنها تتشابك مع وسوم الهتمل بموقعي وممكن تلعب بالتصميم .. فمثلا وسوم التيبل والصفوف والخلايا التي أقرأها من ذلك الموقع سيتم تفعيلها على وسوم التيبل عندي بالموقع وتتسبب في تشويه الجداول لدي

    هل من طريقة لقراءة أجزاء معينة من المواقع دون الهتمل ؟





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه

  11. #11


    اقتباس المشاركة الأصلية كتبت بواسطة رياض القرآن
    كلمة مبدع قليلة بحقك استاذ أشرف ..

    لكن سؤالي هل هي تفرق بين

    <meta> الشكل الغير قياسي.

    و

    <meta />

    ?
    تسلم اخي رياض القرآن وانتو اهل سوالف المبدعين دايماً ..
    حقيقة لم أجرب ذلك .. لكن في الوضع العادي يفترض أنها تجلب كل تلك المعلومات سواء من وسم <meta> في HTML أو من وسم <meta /> في XHTML ... لأنها كلها وسوم Meta واساسية في كل تلك البيئات .... شكراً لردك وتعقيبك عزيزي ..

    sBForum حمد لله على السلامة .. لك مدة غائب .. أسعدتني عودتك أخي

    ودرس جميل تشكر عليه .. ولدي سؤال إذا سمحت .. عند القراءة من موقع معين لأدرجها بموقعي مثلا .. أصادف أحيانا مشكلة في وسوم الهتمل لأنها تتشابك مع وسوم الهتمل بموقعي وممكن تلعب بالتصميم .. فمثلا وسوم التيبل والصفوف والخلايا التي أقرأها من ذلك الموقع سيتم تفعيلها على وسوم التيبل عندي بالموقع وتتسبب في تشويه الجداول لدي

    هل من طريقة لقراءة أجزاء معينة من المواقع دون الهتمل ؟
    أشكرك لردك والله يسلمك اخي Dr.Server .. وانا اسعد بالعودة إلى أهلي في سوالف ..
    اخي هناك طرق لقراءة البيانات وطباعة جزء منها فقط .. عن طريق تحديد الاجزاء التي تريدها بتقسيم المتغير الذي تم تخزين ما جلبته به بواسطة دالة explode وتحديد نقطة بداية التقسيم وتقسيمه مرة اخرى بحيث تأخذ الجزء الذي تريده فقط .. هذه هي آلية عمل الفكرة التي تريدها كما أعتقد .. إذا أحببت أن أضع شرح موسع انا تحت امرك .. مع انه هناك موضوع في سوالف يشرح تلك الطريقة خلال مثال لأحد الأعضاء جزاه الله خيراً .. إذا لقيت الموضوع في طريقي بجيبلك اياه ان شاء الله تعالى ..

    اعذروني على الاطالة
    تحياتي، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  12. #12
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    اخي اشرف جزاك الله كل خير

    شرحك افادني جداً

    تسلم وربنا يوفقك





    __________________
    مدونتي

  13. #13


    واياك استاذي محمود .. والله يسلمك يارب وان شاء الله تكون استفدت فعلاً مثل ما نستفيد دايماً منكم





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  14. #14


    اقتباس المشاركة الأصلية كتبت بواسطة Dr.Server
    sBForum حمد لله على السلامة .. لك مدة غائب .. أسعدتني عودتك أخي

    ودرس جميل تشكر عليه .. ولدي سؤال إذا سمحت .. عند القراءة من موقع معين لأدرجها بموقعي مثلا .. أصادف أحيانا مشكلة في وسوم الهتمل لأنها تتشابك مع وسوم الهتمل بموقعي وممكن تلعب بالتصميم .. فمثلا وسوم التيبل والصفوف والخلايا التي أقرأها من ذلك الموقع سيتم تفعيلها على وسوم التيبل عندي بالموقع وتتسبب في تشويه الجداول لدي

    هل من طريقة لقراءة أجزاء معينة من المواقع دون الهتمل ؟
    اعتذر لرفع الموضوع :shy:
    اخي Dr.Server أتمنى انك تقرأ هذا اذا لم تكن تقرأه سابقاً:
    http://www.swalif.net/softs/showthread.php?t=160062
    للأخ almosmm جزاه الله خيراً ... وأي خدمة انا تحت امرك

    تحياتي، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074





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

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

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض