صفحة 2 من 5 الأولىالأولى 12345 الأخيرةالأخيرة
النتائج 16 إلى 30 من 74

الموضوع: تمارين التعابير القياسية "Regular expressions"

  1. #16
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    ياعزيزي .. ما أوضحته أننا نريد تعبيراً قياسياً متكاملاً أما ما وضعته أنا فما هو الا مثال على تنوع الروابط .
    حسناً فهمت انا قصدك خطأ . المره القادمه هقرأ الطلب بتمعن و ليس بشكل سريع

    كود PHP:
    '[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]' 
    هذا الحل وجدته هنا في سوالف ، وهو يفي بالغرض ..
    تمام . لكن من نظري انه غير دقيق أيضاً للأسف. رأيت هذا النمط من قبل لل regular expressions لكن لم أعمل به . قم بالتجربه بنفسك . معني هذا كمثال انه يمكن وضع بروتوكلات غريبه غير ال ftp و ال http كمثال اني أكتب رابط هكذا zx://ass.com او أني اكتب الموقع بهذا الشكل zxe://ccccccc . لذلك بنظري الحلول الموجوده حتي الان بالموضوع أفضل و أدق

    هذا و الله أعلم ،





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com


  2. #17
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    إحم ..

    لدي سؤال جديد

    نريد تعبيرا قياسيا للتعرف على جميع الصور التي في رابط ما ..
    مثلا
    Google
    يقوم التعبير القياسي بالتعرف على جميع الصور التي في هذه الصفحة وطبعا كيفية قراءة الصفحة ليست هي مشكلتنا الآن

    كود PHP:
    $str file_get_contents("http://www.google.com");
    preg_match_all("/[PATTERN]/"$str$res); 






    __________________
    SWF Thumbnail - tweet me

  3. #18
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    إحم ..

    لدي سؤال جديد

    نريد تعبيرا قياسيا للتعرف على جميع الصور التي في رابط ما ..
    مثلا
    Google
    يقوم التعبير القياسي بالتعرف على جميع الصور التي في هذه الصفحة وطبعا كيفية قراءة الصفحة ليست هي مشكلتنا الآن

    كود PHP:
    $str file_get_contents("http://www.google.com");
    preg_match_all("/[PATTERN]/"$str$res); 
    ايه الأسئلة المعقدة دي :eek2:

    كتبت pattern بشكل سريع لمقارنة tags ال img . أتمني أن يكون المطلوب .. لم أجربه والله حتي لأني مضطر أخرج الان :shy: (حظكم دايماً اني بشوف المواضيع قبل ما أخرج بلحظات ) .. جربوه و بلغوني بالنتيجه <<< أهم شيء قبل أشرف ما يرجع





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com


  4. #19
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    ههههههههه حتي من استعجالي نسيت أكتب ال pattern !!
    تفضل
    كود PHP:
    "/^<img src=('|\"){1}[\s]*[A-Za-z0-9-_.\/?&]+('|\"){1}[\s]*([a-zA-Z0-9\s=]+('|\"){1}[a-zA-Z0-9-_.\s\:"']*('|\"){1})*[\s]*(\/)*>$/" 
    أراكم ليلاً ،





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com


  5. #20
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    حسنا ما رايكم في تعبير ... يستخلص اوسمة html ويضعها في مصفوفه ثم يستخرج من كل وسم خصائصة وضعها في عنصر المصفوفه نفسه .
    كود PHP:
    <font color="blue" size="3">hello</font>
    <
    div style="color:red">hello div</div
    المخرجات
    كود PHP:
    $arr[font][attr] = array('color'=>'blue','size'=>'3');
    $arr[font][body] = 'hello';
    $arr[div][attr] = array('style'=>'color:red');
    $arr[div][body] = 'hello div'
    كيف سيكون هذا التعبير ؟





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .

  6. #21
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    كود PHP:
    <?php
     $html 
    "
    <font color=\"blue\" size=\"3\">hello</font>
    <div style=\"color: red\">contents here</div>
     "
    ;
     
    preg_match_all('/\<([A-Z][A-Z0-9]+)\s*(\s+.*)\>(.*)\<\/\1\>/i'$html$arr);
     
    $tags = array();
     foreach (
    $arr[1] as $key => $val) {
      
    preg_match_all('/([A-Z0-9]+)\s*=\s*("|\'|)(.*)\2/iU'$arr[2][$key], $attrs);
      
    $tags[$val]['attr'] = array();
      foreach (
    $attrs[1] as $key2 => $val2) {
       
    $tags[$val]['attr'][$val2] = $attrs[3][$key2];
      }
      
    $tags[$val]['body'] = $arr[3][$key];
     }
     
    print_r($tags);
    ?>
    مجرد محاولة باستخدام عبارتين منتظمتين





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  7. #22
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    - ماذا لو كان الوسم لا ينتهي بمثله ... أقصد مثل <hr /> - <br />
    - لماذا وضعت U في التعبير الثاني + لماذا ايضا لم تضعه في التعبير الاول ؟
    - ايضا لم افهم لماذا وضعت [A-Z][A-Z0-9] في الاستعلام الاول ولم يكن هكذا فقط [A-Z]+





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .

  8. #23
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    - ماذا لو كان الوسم لا ينتهي بمثله ... أقصد مثل <hr /> - <br />
    كنت سأحاول تضمينه لو أنك قلت xhtml ، كود html أصعب للاكتشاف ، ومع ذلك يمكن بالطبع ، فلا شيء مستحيل .. سأحاول مالم يحاول الأعضاء اليوم إن شاء الله إذا كان في وقت ..

    - لماذا وضعت U في التعبير الثاني + لماذا ايضا لم تضعه في التعبير الاول ؟
    التعبير الثاني إن لم أضع فيه U ستطغو الخاصية الأولى على جميع الخواص وتعتبر عنصراً واحداً مطابقاً للـ pattern .. بهذه الطريقة، سيقف عند أول إشارة مطابقة للأولى بدلاً من أن يتابع الإمساك ببقية النص ..

    التعبير الأول ، ليس من الضروري أن يكون " طماعاً " أو Greedy .. فكل ما بين الوسمين يعتبر تابعاً لهما ..

    - ايضا لم افهم لماذا وضعت [A-Z][A-Z0-9] في الاستعلام الاول ولم يكن هكذا فقط [A-Z]+
    لا يمكن أن يكون [A-Z]+ ، حيث أن هناك بعض الوسوم تحتوي على أرقام ، مثل h1 وغيره ، وكان بالإمكان أن يكون [A-Z0-9]+ فقط .. لكن حتى نضمن أن الوسم يبدأ بحرف ، وليس برقم ..

    أمر آخر

    الكود الذي طرحته في الأعلى لا يدعم Nested Tags ، أو الوسوم المتداخلة ، وبصراحة لم أتوصل لطريقة عملية لدعمها ، يمكن دعمها بطرق مرهقة برمجياً ، ومرهقة للسيرفر كذلك .. إذا استطعت الوصول إلى طريقة مناسبة سأقوم بإضافتها إن شاء الله ، وفي انتظار تعديلاتكم وإضافاتكم كذلك ..

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  9. #24
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    في الحقيقة أمر مربك ههه

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

    التعديل:
    كود PHP:
    <?php
     $html 
    "
    <font color=\"blue\" size=\"3\"></font>
    <div style=\"color: red\">contents here</div>
     "
    ;
     
    preg_match_all('/\<([A-Z][A-Z0-9]+)\s*(.*)\>(.*)\<\/\1\>/isU'$html$arr);
     
    $tags = array();
     foreach (
    $arr[1] as $key => $val) {
      
    preg_match_all('/([A-Z0-9]+)\s*=\s*("|\'|)(.*)\2/iU'$arr[2][$key], $attrs);
      
    $attrs_list = array();
      foreach (
    $attrs[1] as $key2 => $val2) {
       
    $attrs_list[$val2] = $attrs[3][$key2];
      }
      
    $tags[$val][] = array('attr' => $attrs_list'body' => $arr[3][$key]);
     }
     
    print_r($tags);
    ?>
    فعلاً أمر مربك ، ما زال الكود غير مؤهل للعمل بالشكل الكامل ..

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

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


    نعم اضافة المعدّل او المحوّل U الى التعبير مهمة جدا ... حتى يأخذ النتيجة قطعة قطعة بدلا من اخذها كلها كقطعة واحدة.
    ليس لدي اي شيء آخر .





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .

  11. #26
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    نعم اضافة المعدّل او المحوّل U الى التعبير مهمة جدا ... حتى يأخذ النتيجة قطعة قطعة بدلا من اخذها كلها كقطعة واحدة.
    ليس لدي اي شيء آخر .
    .. ننتظر بقية الإخوة والأسئلة الجديدة ..





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  12. #27
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    سأقوم بوضع سؤال قريباً





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com


  13. #28
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    السلام عليكم

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

    الان لنفرض أنك قمت ببرمجة نظام قوالب شكل ال tags الخاصه بيه بهذا الشكل [] .. و هناك وسوم جاهزة من أجل تسهيل كتابة بعض الأمور تلقائياً . مثل في حالة أردت كتابة كود php بالصفحه و تريده ان يظهر في الصفحه دون ترجمته من قبل محرك ال php
    كمثال : عند وضعك لكود php بالمنتدي هنا فتستخدم هذا الوسم المطلوب الان :
    لنفرض لديك صفحة بهذا الشكل :
    كود HTML:
    [page]
    [p]لغة ال php تعد من أهم لغات برمجة الويب ، فهي لغة سلسة و قوية و أكثر استخداماً من قبل معظم مبرمجين الويب[/p]
    
    [p]لنكتب مثالاُ بسيطاً عن ال syntax الخاص بلغة برمجة ال php[/p]
    
    [php]
    <?php
    echo "it's my first echo";
    ?>
    [/php]
    
    [p]سنوضح الان المثال بالأعلي :[/p]
    [list]
    	[*]الوسمين <?php و ?> هما الوسمين المستخدمين لكي نعرف أننا بدأنا كود php
    	[*]تستخدم echo لطباعة الكلام الذي نريد ظهوره للمستخدم بالصفحه و يتم طباعته بين العلامتين ""
    	[*]يتم انهاء كل سطر برمجي بالعلامة ;[/list]
    
    [link go=second.php]الصفحة التاليه[/link]
    
    [/page]
    المطلوب هو أن تقوم بعمل برمجية تقوم بتحويل التالي من أجل اخراج لنا صفحة html :
    قمت بوضع المتطلبات بصورة . حيث ان ال tags لما أضعها بالموضوع فالمنتدي يقوم بتحويلها



    هذا ما لدي الان





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com


  14. #29
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    أحمد باشا ، آسف على التأخير في الرد ، بس انت عارف الوضع اليومين دول مكركب شوية ..

    كتبت الآن كود سريع وبسيط ، أكيد هو مش دقيق وفي أحسن منه ، بس بطرحه عليكم وبنتظر آراءكم وتعديلاتكم وتطويراتكم إن شاء الله ، تفضلوا :
    كود PHP:
    <?php

    function liCount() {
        static 
    $liCount;
        if (!isset(
    $liCount)) $liCount 0;
        else 
    $liCount++;
        
        if (
    $liCount == 0) {
            return 
    '<li>';
        } else {
            return 
    '</li><li>';
        }
    }

    $text preg_replace('/\[page\](.*)\[\/page]/isU''<html>\\1</html>'$text);
    $text preg_replace('/\[p\](.*)\[\/p]/isU''<p>\\1</p>'$text);
    $text preg_replace('/\[link\](.*)\[\/link\]/isU''<a href="\\1">\\1</a>'$text);
    $text preg_replace('/\[link go=("|\'|)(.*)\1\](.*)\[\/link\]/isU''<a href="\\2">\\3</a>'$text);
    $text preg_replace('/\[php\](.*)\[\/php\]/isUe''highlight_string(stripslashes("\\1"), 1)'$text);
    $text preg_replace('/\[list\](.*)\[\/list\]/isU''<ul>\\1</li></ul>'$text);
    $text preg_replace('/\[\*\]/ie''liCount()'$text);

    echo 
    $text;

    ?>
    ملاحظة: قمت بحذف المثال من الكود لأن المنتدى يحوّل الـ BBCode تلقائياً ..

    يالله ، بالانتظار ..

    تحياتي، أشرف السمهوري





    التعديل الأخير تم بواسطة أشرف السمهوري ; 30-05-2008 الساعة 12:52 AM
    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  15. #30
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    أحمد باشا ، آسف على التأخير في الرد ، بس انت عارف الوضع اليومين دول مكركب شوية ..

    كتبت الآن كود سريع وبسيط ، أكيد هو مش دقيق وفي أحسن منه ، بس بطرحه عليكم وبنتظر آراءكم وتعديلاتكم وتطويراتكم إن شاء الله ، تفضلوا :
    كود PHP:
    <?php

    function liCount() {
        static 
    $liCount;
        if (!isset(
    $liCount)) $liCount 0;
        else 
    $liCount++;
        
        if (
    $liCount == 0) {
            return 
    '<li>';
        } else {
            return 
    '</li><li>';
        }
    }

    $text preg_replace('/\[page\](.*)\[\/page]/isU''<html>\\1</html>'$text);
    $text preg_replace('/\[p\](.*)\[\/p]/isU''<p>\\1</p>'$text);
    $text preg_replace('/\[link\](.*)\[\/link\]/isU''<a href="\\1">\\1</a>'$text);
    $text preg_replace('/\[link go=("|\'|)(.*)\1\](.*)\[\/link\]/isU''<a href="\\2">\\3</a>'$text);
    $text preg_replace('/\[php\](.*)\[\/php\]/isUe''highlight_string(stripslashes("\\1"), 1)'$text);
    $text preg_replace('/\[list\](.*)\[\/list\]/isU''<ul>\\1</li></ul>'$text);
    $text preg_replace('/\[\*\]/ie''liCount()'$text);

    echo 
    $text;

    ?>
    ملاحظة: قمت بحذف المثال من الكود لأن المنتدى يحوّل الـ BBCode تلقائياً ..

    يالله ، بالانتظار ..

    تحياتي، أشرف السمهوري
    سلام عليكم ..

    أشرف باشا . ولا يهمك بالتأخير ، الأهم ان فيه شخص رد
    أنا برده مستعجل مضطر أنام الآن :shy: << غداً الجمعه
    بس راجعت كودك سريعاً .. نعم ممتاز < لم أجربه صراحة . لكن مما قراته بالكود فهو ان شاء الله هيقضي الغرض





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com






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

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

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