TO DONATE : BTC => 1BU6R1C4AQ77LjLZswQNKFwAupw61i88Kn || PM => U4089661


اهم قوانين :1- منع الردود الباهتة مثل شكرااااا و أخواتها 2- لا يسمح بالمشاحنات الطائفية باآ شكل من الأشكال 3- عدم استعمال الألفاظ التافهة و الكلام البذىء 4- عدم وضع معرفات التواصل الأجتماعى بالردود 5- الأطلاع على كامل القوانين واجب 


العودة   الحماية للأبد -Security 4 Ever > قسم البرمجـــة > لغات البرمجة التفسيرية

لغات البرمجة التفسيرية قسم مختص بالبرمجة التفسيرية مثل :
PHP, java, perl, Python, Bash, Shell script, JPython, AutoIt, Z shell, AWK, VB Script

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 24-07-2012, 03:31 PM
الصورة الرمزية pmoki
pmoki
عضو مميز
 
حـالة التــواجـد : pmoki غير متواجد حالياً
تاريخ التسجيل: Jul 2010
مكـان الإقامـة : الجزائر
الجــــنــــــس: ذكـر
الــهـــوايـــــة: ألبرمجة
المشاركات: 150
شكراً:220
تم شكره 120 مرة في 29 مشاركة
معدل تقييم المستوى: 10
pmoki على طريق التميز
افتراضي بدايتك نحو التعابير القياسية

السلام عليكم و رحمة الله تعالى و بركاته

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

اللهم صلي على سيدنا محمد و على آله و صحبه أجمعين ، و بعد اللهم أخرجنا من ظلمات الجهل و الكفر إلى أنوار المعرفة و العلم و

من وحول الشهوات إلى جنات القربات ، اليوم بفضل الله نأخذ نظرة عن النعابير القياسية من 0





تدعم لغة PHP نوعان من التعابير القياسيه , وهي POSIX و PERL , الاول يكون مدمج مع اللغه تلقائيا ولكن الاخر يحتاج الى ان تقوم بتنصيبه ,, لا تقلق فعند استخدامك التنصيب العادي للغة سوف يتم وضع الاثنان معا , يعتبر النوع الاول اسهل في التعلم والطبيق من النواع الثاني , ويتم ترجمته وتشغيله اسرع ,, ولكنه ليس امن كالثاني . جميع ما يعرفه البعض عباره عن مقانرة نصوص متطابقه او اجزاء من النصوص ولكن ماذا لو احتجنا الى ان نقوم بشيئ اكثر من ذلك ,, فالتعابير القياسيه هي مبتغانا ,, وسوف نقم بالتعلم عليها والتطبيق عليها.

لمحة عن posix

و هي التعابير القياسية الخاصة باللغة ذاتها

لكنها تعتبر ثقيلة مقارنة بالPCRE

الPCRE

و هي التعابير القياسية الخاصة بلغة البيرل

و هي أكثر سرعة

دعونا ندخل الى الأهم

الآن سنتطرق الى الدوال الخاصة بالتعابير القياسية

preg_ filter

preg_ grep

preg_ last_ error

preg_ match_ all

preg_ match

preg_ quote

preg_ replace_ callback

preg_ replace

preg_ split



سنتطرق نحن فقط للدالتين

preg_replace و preg_match

و البقية ابحثو عنها عندما تحتاجونها



دعونا نبدأ بالدالة الأكثر استعمالا

preg_match

هاته الدالة تساعدنا على البحث في جملة أو نص على حرف كلمة أو جملة

و تمتاز بدقتها نظرا للخيارات التي تعطينا اياها و أيضا بحساسيتها اتجاه الأحرف

دعونا نبدأ في التطبيق حتى تتضح الفكرة

كود:
<?php
         $text = "welcome to my world";
    if (
           preg_match("#welcome#",$text)
        ) {

                echo "ok !!";

            } else {

                echo "bad !!";

                    }

?>
"#welcome#"

نلاحظ هنا أننا نريد أن نبحث عن كلمة welcome

و دائما يجب وضع الباترن كما يسمونه في التعابير القياسية بين علامة الدياز #

و الباترن هو الكلمة المراد البحث عنها

نرجع لمثالنا

طلبنا منه أن يبحث عن كلمة welcome فان وجدها يطبع ok اما اذا كان العكس يطبع bad

النتيجة

النتيجة

اقتباس:
ok !!
 
و الآن دعونا نمر الى المحور الثاني



سنتطرق في هذا المحور الى خصائص الدالة preg_match

طبعا اذا كنت تريد البحث عن كلمة حرف أو جملة

فالدالة تمنحك خواص جميلة جدا

دعونا نتطرق اليها واحد بواحد

الأول : المعامل أو و رمزه |

كود:
<?php
         $text = "welcome to my world";
    if (
           preg_match("#welcome | back#",$text)
        ) {

                echo "ok !!";

            } else {

                echo "bad !!";

                    }

?>

النتيجة

اقتباس:
ok !!
 

هنا طلبنا من الدالة البحث عن كلمة welcome أو back

و اذا وجد احداهما يرجع صحيح أما اذا كان العكس فانه يرجع القيمة خطأ


دعونا نمر الى نقطة أخرى

اذا أردت أن تتأكد أن الجملة تبدأ بحرف أو كلمة معينة

فيمكنك الاستعانة بهذا المعامل

ورمزه هو ^

كود:
<?php
         $text = "welcome to my world";
    if (
           preg_match("#^world#",$text)
        ) {

                echo "ok !!";

            } else {

                echo "bad !!";

                    }

?>
النتيجة

اقتباس:
bad !!
 
الآن الى معامل البحث في نهاية الجملة

و رمزه $

كود:
<?php
         $text = "welcome to my world";
    if (
           preg_match("#world$#",$text)
        ) {

                echo "ok !!";

            } else {

                echo "bad !!";

                    }

?>

النتيجة

اقتباس:
ok !!
 

الآن دعونا نمر الى دمج المعاملين معا

كود:
<?php
         $text = "welcome to my world";
    if (
           preg_match("#^welcome to my world$#",$text)
        ) {

                echo "ok !!";

            } else {

                echo "bad !!";

                    }

?>

النتيجة

اقتباس:
ok !!
 


سنرى في هذه المرحلة

ما يسمى بالكلاسات

و هي تسمح لنا بالحث عن حرف حرفين أو أكثر

المهم دعونا نمر الى الكود البرمجي و الذي سيلخص الكثير من الكلام

كود:
<?php
         $text = "Welcome to my World";
    if (
           preg_match("#[w]#",$text)
        ) {

                echo "ok !!";

            } else {

                echo "bad !!";

                    }

?>
النتيجة

اقتباس:
bad !!
 
هنا طلبنا منه البحث عن الحرف w صغير

و ذلك بالرغم من وجوده لكن بالشكل الكبير A فانه يطبع لنا خطأ

دعونا نتقدم أكثر

مار أيكم لو نطلب البحث عنه أكثر من حرف

كود:
<?php
         $text = "Welcome to my World";
    if (
           preg_match("#[adfrtghjvx]#",$text)
        ) {

                echo "ok !!";

            } else {

                echo "bad !!";

                    }

?>

النتيجة

اقتباس:
ok !!
 

لكن ماذا لو أردنا البحث من أن الكلمة تحتوي على حروف مرتبة

مثلا هكذا

[abcdefg] الحل سهل يكون كمايلي [a-g]

و علامة - تعني مجال

كأنك تقول له من a الى g

و نفس الشئ بالنسبة لأرقام



توضيح لكم العلامات الخاصة

في حالة ان صادفتوها وهي

# ! ^ $ ( ) [ ] { } ? + * . \ |

لكن أثناء استعمالها يجب أن تسبق بعلامة \ لاحظو جيدا

\ و ليست /

و سنرى ذلك من خلال مثال

كود:
<?php
         $text = "Are you there ?";
    if (
           preg_match("#there \?#",$text)
        ) {

                echo "ok !!";

            } else {

                echo "bad !!";

                    }

?>
النتيجة

اقتباس:
ok !!
 

و الآن سنشرح بعض المعاملات و هي

+ * ?

نشرحها

العلامة + و تعني يجب أن يتواجد مرة واحدة على الأقل

العلامة ? و تعني أنه ان كان موجود أو لا

العلامة * وتعني أنه يتواجد أكثر من مرة


لدينا حرف واحد و نريده أن يتكرر 5 مرات ماذا سنفعل ؟

الحل سهل و هو كمايلي

(o) {x}

الحرف o نريده أن يتكرر x مرة

الى هنا السلام عليكم و رحمة الله و تعالى و بركاته  
رد مع اقتباس
14 أعضاء قالوا شكراً لـ pmoki على المشاركة المفيدة:
  #2  
قديم 24-07-2012, 03:45 PM
الصورة الرمزية i-Hmx
i-Hmx
| Eg-R1z |
 
حـالة التــواجـد : i-Hmx غير متواجد حالياً
تاريخ التسجيل: Jun 2010
مكـان الإقامـة : Infinity
الجــــنــــــس: ذكـر
الــهـــوايـــــة: ruining things
المشاركات: 1,398
شكراً:1,269
تم شكره 6,068 مرة في 754 مشاركة
معدل تقييم المستوى: 10
i-Hmx will become famous soon enough
افتراضي رد: بدايتك نحو التعابير القياسية

شرح سلس وبسيط جدا
تسلم ايدك يا معلم
فى انتظار الـpreg_replace
بالتوفيق يا برنس  

 

 

"اللهم إغفر لنا ذنوبنا وإسرافنا فى أمرنا وثبت أقدامنا وانصرنا على القوم الكافرين"

Telegram or contact method : PM me || Personal Blog : 1337s.cc
رد مع اقتباس
الأعضاء الذين قالوا شكراً لـ i-Hmx على المشاركة المفيدة:
  #3  
قديم 24-07-2012, 04:41 PM
الصورة الرمزية d0n3
d0n3
عضو مميز
 
حـالة التــواجـد : d0n3 غير متواجد حالياً
تاريخ التسجيل: Aug 2010
الجــــنــــــس: ذكـر
المشاركات: 177
شكراً:618
تم شكره 203 مرة في 95 مشاركة
معدل تقييم المستوى: 10
d0n3 على طريق التميز
افتراضي رد: بدايتك نحو التعابير القياسية

يسلم قلبك على الشرح لكن لو يواجهني
مثل هذآ الكود
كود PHP:
<td style="width: 280px; overflow: hidden;" bgcolor="#EFEFEE">TaWaGNjD</td></tr
كيف استخرج من الصفحة TaWaGNjD
ويعطيك العافيه على هذي التوضيحات  
رد مع اقتباس
الأعضاء الذين قالوا شكراً لـ d0n3 على المشاركة المفيدة:
  #4  
قديم 24-07-2012, 06:18 PM
الصورة الرمزية pmoki
pmoki
عضو مميز
 
حـالة التــواجـد : pmoki غير متواجد حالياً
تاريخ التسجيل: Jul 2010
مكـان الإقامـة : الجزائر
الجــــنــــــس: ذكـر
الــهـــوايـــــة: ألبرمجة
المشاركات: 150
شكراً:220
تم شكره 120 مرة في 29 مشاركة
معدل تقييم المستوى: 10
pmoki على طريق التميز
افتراضي رد: بدايتك نحو التعابير القياسية

اقتباس:
المشاركة الأصلية كتبت بواسطة TaWaGNjD مشاهدة المشاركة

يسلم قلبك على الشرح لكن لو يواجهني
مثل هذآ الكود
كود PHP:
<td style="width: 280px; overflow: hidden;" bgcolor="#EFEFEE">TaWaGNjD</td></tr
كيف استخرج من الصفحة TaWaGNjD
ويعطيك العافيه على هذي التوضيحات
تفضل عزيزي

كود PHP:
<?php

$ressources 
'<td style="width: 280px; overflow: hidden;" bgcolor="#EFEFEE">TaWaGNjD</td></tr>';

preg_match('#\<(.)*\>(.)*\<\/(.)*\>#',$ressources,$key);

echo 
$key[0];

?>
 
رد مع اقتباس
  #5  
قديم 24-07-2012, 06:20 PM
الصورة الرمزية Mr.TiGeR
Mr.TiGeR
عضو مميز
 
حـالة التــواجـد : Mr.TiGeR غير متواجد حالياً
تاريخ التسجيل: Sep 2010
الجــــنــــــس: ذكـر
المشاركات: 195
شكراً:211
تم شكره 104 مرة في 49 مشاركة
معدل تقييم المستوى: 10
Mr.TiGeR على طريق التميز
افتراضي رد: بدايتك نحو التعابير القياسية

يعطيك العآفيـه اخي الغالي لقد كآن من اجمل الدروس التي مرت علي تتكلم عن هذا النوع

تقبل مروري ولي عوده بأذن الله  
رد مع اقتباس
الأعضاء الذين قالوا شكراً لـ Mr.TiGeR على المشاركة المفيدة:
  #6  
قديم 24-07-2012, 06:23 PM
الصورة الرمزية pmoki
pmoki
عضو مميز
 
حـالة التــواجـد : pmoki غير متواجد حالياً
تاريخ التسجيل: Jul 2010
مكـان الإقامـة : الجزائر
الجــــنــــــس: ذكـر
الــهـــوايـــــة: ألبرمجة
المشاركات: 150
شكراً:220
تم شكره 120 مرة في 29 مشاركة
معدل تقييم المستوى: 10
pmoki على طريق التميز
افتراضي رد: بدايتك نحو التعابير القياسية

اقتباس:
المشاركة الأصلية كتبت بواسطة mr.tiger مشاهدة المشاركة

يعطيك العآفيـه اخي الغالي لقد كآن من اجمل الدروس التي مرت علي تتكلم عن هذا النوع

تقبل مروري ولي عوده بأذن الله
ان شاء الله  
رد مع اقتباس
  #7  
قديم 24-07-2012, 06:58 PM
الصورة الرمزية Abu Hamid Madridi
Abu Hamid Madridi
عضو مميز
 
حـالة التــواجـد : Abu Hamid Madridi غير متواجد حالياً
تاريخ التسجيل: Mar 2012
الجــــنــــــس: ذكـر
المشاركات: 252
شكراً:272
تم شكره 193 مرة في 93 مشاركة
معدل تقييم المستوى: 0
Abu Hamid Madridi بدون تقييم
افتراضي رد: بدايتك نحو التعابير القياسية

شــرح وآفق وكامل والكمال لله ..

صحيت عزيزي .. استمر  

 

 

Good Bye My Firends And All
رد مع اقتباس
  #8  
قديم 24-07-2012, 08:33 PM
الصورة الرمزية x0Slotleet
x0Slotleet
عضو مشرف للمنتدى
 
حـالة التــواجـد : x0Slotleet غير متواجد حالياً
تاريخ التسجيل: Feb 2012
الجــــنــــــس: ذكـر
المشاركات: 1,857
شكراً:2,198
تم شكره 3,833 مرة في 1,020 مشاركة
معدل تقييم المستوى: 0
x0Slotleet بدون تقييم
افتراضي رد: بدايتك نحو التعابير القياسية

شرح رائع جدا جدا

اول مرة افهم التعابير القياسية و انت وضحتها بشكل جيد

تحياتي لك .  

 

 

one single vulnerability, all an attacker needs

رد مع اقتباس
  #9  
قديم 24-07-2012, 08:48 PM
الصورة الرمزية html
html
عضو جديد
 
حـالة التــواجـد : html غير متواجد حالياً
تاريخ التسجيل: Jun 2012
الجــــنــــــس: ذكـر
المشاركات: 17
شكراً:15
تم شكره 4 مرة في 4 مشاركة
معدل تقييم المستوى: 0
html بدون تقييم
افتراضي رد: بدايتك نحو التعابير القياسية

شكراً
شرح وااضح ..
 

 

 

http://im14.gulfup.com/4Mqr1.jpg
  • سبحان الله و بحمده ، سبحان الله العظيم.
  • اللَّهُمَّ بَلِّغْنا رَمَضَان وَأَعِنَّا عَلَى صِيَامِهِ وَقِيَامِهِ عَلَى الوَجْهِ الّذِي يُرْضِيكَ عَنَّا وَصَلِّ اللَّهُمَّ وَسَلِّمْ وزِد وَبَارِكْ عَلَى سَيِّدِنَا مُحَمَّدٍ وَعَلَى آلِهِ وصحبه وسلِم.



رد مع اقتباس
  #10  
قديم 24-07-2012, 09:23 PM
الصورة الرمزية d0n3
d0n3
عضو مميز
 
حـالة التــواجـد : d0n3 غير متواجد حالياً
تاريخ التسجيل: Aug 2010
الجــــنــــــس: ذكـر
المشاركات: 177
شكراً:618
تم شكره 203 مرة في 95 مشاركة
معدل تقييم المستوى: 10
d0n3 على طريق التميز
افتراضي رد: بدايتك نحو التعابير القياسية

معليش اخي الله يخليك ويبعد عنك كل مكروه
الكود الي كتبته لي يطبع نفس الكود في المتصفح يمكن مافهمتني او ماوضحت لك الفكره

انا اقصد استخراج من الكود TaWaGNjD فقط وترك الباقي
والله يسلم قلبك استمر  
رد مع اقتباس

الكلمات الدلالية (Tags)
التعابير, القياسية, بدايتك, نحن


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

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

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
[شرح كتابى] بدايتك في تعلم php Ashter قسم الكتب الألكترونية E-books 0 15-02-2016 10:50 PM
دروس تعابير القياسية Regular expression - RegEx n4ss1m لغات البرمجة التفسيرية 11 03-08-2015 12:28 AM
[استفسار] الدرس السادس: مدخل للتعابير القياسية b0y دورة البيرل Perl 5 17-12-2014 10:44 PM
[شرح كتابى] الدرس السادس: مدخل للتعابير القياسية b0y دورة البيرل Perl 0 28-06-2014 10:27 PM


الساعة الآن 06:44 AM