• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

البحث في المنتدى

Showing results for tags 'Gene Expression Programming'.

  • البحث بالتاقات

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • البحث بكاتب الموضوع

تم إيجاد 16 نتيجة

  1. السلام عليكم تطبيق مجاني  القران الكريم كاملا 120 قاريء لاجهزة الاندرويد https://play.google.com/store/apps/details?id=com.alhaddad.Quran و شكرا
  2. تعلم لغة الجافا سكربت  من سلسلة الكتب المشهورةhead first رابط تحميل   head first javascript pdf Head_First_JavaScript.rar -  73.7 MB  
  3. بسم الله الرحمن الرحيم  إنَّ الحَمْدَ لِلَّهِ نَحْمَدُهُ وَنَسْتَعِيُنُهُ وَنَسْتَغْفِرُهُ وَنَسْتَهْدِيهِ وَنَعُوذَ بِاللهِ مِن شُرُورِ أَنفُسِنَا وَسَيئَاتِ أَعْمَاِلَنَا، مَن يَهْدهِ اللهُ فَلا مُضلَّ لَه ، وَمَن يُضْلِل فَلا هَادِي لَه، وَأَشْهَدُ أَنَّ لاَ إِلهَ إلا اللهُ وَحدَهُ لاَ شَريكَ لَهُ، وَأَشْهدُ أنَّ مُحَمَّداً عَبدُهُ وَرَسُولُهُ . ----------------------------------------------------------------------------------------------   طوّرت شركة مايكروسوفت ( Microsoft ) منصّة عمل سمّتها دوت نت ( NET Framework. ) وبيئة عمل سمّتها ( Visual Studio IDE ) حيث أصبح بإمكان مطوّر التّطبيقات الإستعانة بهذين الأخيرين بالإضافة للغة برمجة تعمل تحت هذه المنصّة أن يطوّر التّطبيقات المكتبيّة وتطبيقات الويب والتّطبيقات الموزّعة أيضاً. سوف نتحدّث في هذه السلسلة التّعليميّة عن لغة السي شارب ( #C ) التي طوّرتها مايكروسوفت خصّيصاً لمنصّة ( NET. ). زوّدت #C بالعديد من الميّزات التي تجعلها من أقوى لغات البرمجة الغرضيّة التّوجّه ( Object Oriented Programming ) ومن أهمّ هذه الميّزات : أوّلاً : معالجة السّلاسل المحرفيّة ( Strings ). ثانياً : الرّسوميّات ( Graphics ). ثالثاً : الواجهات التّخاطبيّة ( Graphical User Interface ). رابعاً : معالجة الاستثناءات ( Exception Handling ). خامساً : النياسب المتعدّدة ( Multi Threading ). سادساً : التّعامل مع الملفّات ( File Streams ). سابعاً : الوسائط المتعدّدة ( صوت ،صورة ،فيديو ) ( Multimedia ). ثامناً : التّكامل مع قواعد البيانات ( ADO.NET ). تاسعاً : التّطبيقات الشّبكيّة ( Network Programming ). أخيراً : التّطبيقات الموزّعة ( Distributed Applications ). والكثير والكثير ..........                                        - الهدف الذي أطمح إليه من هذه السّلسلة :    تقديم محتوى تعليمي إلكتروني شامل حول هذه اللغة ( #C ) موجّه لمن لديه معرفة بسيطة أو لا يمتلك أيّ خبرة سابقة في البرمجةوالوصول به إلى مستوى عالٍ ومتقدّم .لذلك سوف تكون هذه السّلسلة شاملة بمحتواها من شرح نظري وأمثلة عمليّة وتمارين                 وأسئلة ومشاريع احترافيّة.....                     وأسأل الله تعالى أن يوفّقنا لما يحبّ ويرضى ، والله ولي التوفيق.                                   =============================================================================  الشرح فيديو على اليوتيوب ارجو ان يعجبكم الشرح     https://www.youtube.com/watch?v=G99wGpuSxwU   لجميع الفيديوهات ستجدون شرح مفصل لدورة لغة C# من A الي Z     https://www.youtube.com/channel/UCZx_t7YftSh9GCKqVadw2pQ/videos       
  4. كورس برمجة كامل كما في شركات البرمجة     كورس تعلم البرمجة كما في شركات البرمجة 6 مستويات تدريبية المستوي الاول والثاني مجانا وبهم حوالي 25 فيديو تعليمي لتعليم البرمجة المستويات الاربعة المحترفة الاخري مصممة خصيصا لتأهيل مبرمجين محترفين و بها المشاريع الاتية   زيارة الموقع لمزيد من المعلومات اكتب في جوجل موقع تعلم البرمجة كما في شركات البرمجة http://www.citystarit.com   بعض المشاريع التي تتعلمها في الدورة : 1.تعلم  برمجة  مشروع موقع تواصل اجتماعي الفايس بوك 2- تعلم برمجة  مشروع محرك البحث جوجل 3- تعلم برمجة  مشروع بريد الياهو  4- تعلم برمجة  مشروع موقع تسوق الكتروني كامل بدء من الجاليري ومرحلة سلة التسوق وانتهاء بمرحلة دفع النقود واستلامها عبر وسائل الدفع   5. تعلم برمجة  مشروع الامتحانات اونلاين 6. تعلم برمجة  موقع متعدد اللغات بشكل متقدم كما في الشركات البرمجية الكبري 7. تعلم برمجة  مشروع برنامج مخازن اونلاين             لغات وتقنيات وقواعد بيانات الدورة باختصار Visual Studio,Asp.net ,C# ,sql server Database , ajax, OOP,jquery,Reports and more   افضل موقع في تعليم البرمجة كما في شركات البرمجة حيث تتعلم خبرة عمل حقيقية ومشاريع كثيرة وكبيرة   الرد الفوري : هشام بكر من داخل مصر             01110908853 01022004626   من خارج مصر     00201022004626 00201110908853   زيارة الموقع لمزيد من المعلومات اكتب في جوجل موقع تعلم البرمجة كما في شركات البرمجة http://www.citystarit.com   كلمات مفتاحية : asp.net,C#,visual,studio,sql,server,access,ajax,jquery,oop,objected,oriented, programming,برمجة  ,اس كيو ال سيرفر,تعلم البرمجة كما في شركات البرمجة ,كورس,دورة,سي شارب,تعلم asp.net,شرح, asp.net بالعربي, تعليم asp.net بالعربي, asp.net, دورات asp.net, تصميم مواقع asp.net,
  5.   الجيزة للبرمجيات و الانظمة المُدمجة   خبرة 14 عام في تصميم وتنفيذ برامج الكمبيوتر و الانظمة المُدمجة و الدوائر الإلكترونية. خدماتنا: ·         تصميم وتنفيذ وتطوير برامج الكمبيوتر Desktop Applications ·         تصميم وتنفيذ وتطوير قواعد البيانات Using MS SQL Server ·         تصميم وتنفيذ وتطوير الأنظمة المُدمجة  Using PIC Microcontrollers ·         تصميم وتنفيذ وتطوير الدوائر الالكترونية و دوائر التحكم Electronic Circuits   مميزات التعامل معنا: ·         دقة وسرعة التنفيذ. ·         أقل مدة تنفيذ للمشاريع. ·         خدمة مابعد البيع (دعم فني 24 ساعة 7 أيام بالاسبوع). ·          تطوير افكارك وطرح افكار وحلول جديدة خارج الصندوق. ·         استخدام احدث اساليب التكنولوجيا نظراً لاطلاعنا على كل ماهو جديد حول العالم. ·         كل هذا باقل سعر ممكن.   للإتصال: ·         م/مصطفى عبد الظاهر ·         موبيل: 00201005674650 ·         بريد الكتروني: [email protected]         ·         الموقع الالكتروني: www.gizacode.com ·         https://www.facebook.com/GizaCode
  6.   الجيزة للبرمجيات و الانظمة المُدمجة   خبرة 14 عام في تصميم وتنفيذ برامج الكمبيوتر و الانظمة المُدمجة و الدوائر الإلكترونية. خدماتنا: ·         تصميم وتنفيذ وتطوير برامج الكمبيوتر Desktop Applications ·         تصميم وتنفيذ وتطوير قواعد البيانات Using MS SQL Server ·         تصميم وتنفيذ وتطوير الأنظمة المُدمجة  Using PIC Microcontrollers ·         تصميم وتنفيذ وتطوير الدوائر الالكترونية و دوائر التحكم Electronic Circuits   مميزات التعامل معنا: ·         دقة وسرعة التنفيذ. ·         أقل مدة تنفيذ للمشاريع. ·         خدمة مابعد البيع (دعم فني 24 ساعة 7 أيام بالاسبوع). ·         تطوير افكارك وطرح افكار وحلول جديدة خارج الصندوق. ·         استخدام احدث اساليب التكنولوجيا نظراً لاطلاعنا على كل ماهو جديد حول العالم. ·         كل هذا باقل سعر ممكن.   للإتصال: م/مصطفى عبد الظاهر موبيل: 00201005674650 بريد الكتروني: [email protected]         الموقع الالكتروني: www.gizacode.com https://www.facebook.com/GizaCode  
  7.   الجيزة للبرمجيات و الانظمة المُدمجة   خبرة 14 عام في تصميم وتنفيذ برامج الكمبيوتر و الانظمة المُدمجة و الدوائر الإلكترونية. خدماتنا: ·         تصميم وتنفيذ وتطوير برامج الكمبيوتر Desktop Applications ·         تصميم وتنفيذ وتطوير قواعد البيانات Using MS SQL Server ·         تصميم وتنفيذ وتطوير الأنظمة المُدمجة  Using PIC Microcontrollers ·         تصميم وتنفيذ وتطوير الدوائر الالكترونية و دوائر التحكم Electronic Circuits   مميزات التعامل معنا: ·         دقة وسرعة التنفيذ. ·         أقل مدة تنفيذ للمشاريع. ·         خدمة مابعد البيع (دعم فني 24 ساعة 7 أيام بالاسبوع). ·         تطوير افكارك وطرح افكار وحلول جديدة خارج الصندوق. ·         استخدام احدث اساليب التكنولوجيا نظراً لاطلاعنا على كل ماهو جديد حول العالم. ·         كل هذا باقل سعر ممكن.   للإتصال: م/مصطفى عبد الظاهر موبيل: 00201005674650 بريد الكتروني: [email protected]gizacode.com         الموقع الالكتروني: www.gizacode.com https://www.facebook.com/GizaCode  
  8. السلام عليكم ورحمة  الله تعالى وبركاته. هل هناك أحد هنا يملك هذا الكتاب: assembly language programming and organization of the ibm pc by ytha yu charles marut ؟ لقد بحثت عنه كثيرًا في الإنترنت ولم أجده، تقريبا منذ عامين أو أكثر وأنا أبحث عنه ولم أجد له أثراُ بَعْدُ. إن كان هذا الكتاب متواجدًا عند أحدكم فليرفعه لنا هنا أو فليكتب رابطًا.   واعلموا أن الدّال عن الخير كفاعله. وجزاكم الله خيرًا.   تعديل: هذه هي واجهة الكتاب،،،  
  9. دعوة للاطلاع على مجموعة من برامجنا واعمالنا   متخصصون في تصميم وتنفيذ وتطوير الانظمة المدمجة و تطبيقات سطح المكتب بشكل احترافي وبخبرة اكثر من 12 عام متخصصون في تقديم الاستشارات و الحلول و الأفكار المبتكرة حول الانظمة المدمجة و تطبيقات سطح المكتب. للمصانع و الشركات و الافراد و الطلابللاطلاع على احدث اعمالنا برجاء زيارة صفحتنا على  تفضلوا بزيارة صفحتنا على Facebook عرض فيديو لاعمالنا السابقة
  10. محتاج مساعدة في خوارزمية Gene Expression Programming   انا محتاج شرح عنها عشان هاستخدمها في تشفير الرسائل داخل الصور
  11. سلام عليكم كيفكم يا  رجال   دي تاني مشاركه ليا في الموقع للاسف   انا بدات اتعلم c++ من حوالي 40 يوم   وبدات في كتاب objest oriented programming 4th edition من حوالي 10 ايام والصراحه الكتاب  كنز و فيه معلومات قيمه واسلوب رائع في الشرح بس الصراحه مفهتمش المواضيع دي او ايه الهدف منها وازاي تطبيقها  operator overloading & parsing programme & linked list  programming هل في حد هنا يعرف عنها كويس ويقدر يفيدني بيها شكرا مقدما
  12. أكثر ما أراه في أكواد المحترفين في ++C هو استخدامهم للــtemplates بشكل يثير الفضول ! لطالما حاولت قصر فهمي لها بأنه تأخذ وسيطاً بين<> وهو اسم النوع الذي نتعامل معه ... ولكنها كانت أروع من ذلك بكثيير ! في البداية كنت أحب استخدام #define فهي لغة بداخل اللغة وكان هذا ممتعاً .. أنت تكتب كود يغيّر نفسه .. ولكن وظيفة #define مقتصرة على استبدال معرّف ما بعبارة معيّنة , الاستبدال فقط .. لا يوجد توليد لأي شيء .. بعد نظرتين وثلاث .. ولمحتها بالصدفة عدّة مرات .. لم أستطع مقاومة قراءة هذا الكود للأخ خالد في تلك المشاركة .. وأخيراً .. كلّمتني :) ... فهمتها .. وعلى الفور خطرت ببالي فكرة مرعبة .. #include<cstdio>template<int a>bool hello(){//Hello World!    if(a>1)        if(a==2||a==3||a==5||a==7||a==11||a==13||a==17||a==19)            if(a%2!=0&&a%3!=0&&a%5!=0&&a%7!=0&&a%11!=0&&a%13!=0&&a%17!=0&&a%19!=0)                return true;    return false;}int main(){    printf("%i\n",hello<17*17+1>());    return 0;}لما طبّقتها ..نجحت .. وقررت الخوض في الحديث .. يعني الكود التالي : template<int a,int b>bool hello2(){    if(a==b)        return 1;    if(a%b==0)        return 0;    return hello2<a,b+1>();}int main(){    hello2<27,2>();    return 0;}لكن ما حصل نصيب ! , يا أخي شيء عجيب ! لي بضعة أيام ,المصرّف يعرّفني على كل الأخطاء الموجودة عنده .. قال fatal error C1202: recursive type or function dependency context too complexحاولنا مع واسطة template<int a,int b>bool hello2(){    if(a==(a-b))        return 1;    if(a%(a-b)==0)        return 0;    return hello2<a,b-1>();}template<>bool hello2<27,1>(){return true;}template<>bool hello2<97,1>(){return true;}#include<iostream>using namespace std;int main(){    cout<<hello2<97,97-2>()<<endl;    cout<<hello2<27,27-2>()<<endl;    return 0;}وبالفعل نجحت العودية .. لكن ليس هذا مطلبي ! لا أريد أن بتم الاستدعاء في الـ runtime .. أريد النتيجة جاهزة أول ما يشتغل الأخ البرنامج ! أريد أن تُحسب النتيجة في وقت التصريف Compile time. المصرّف يقوم بما يلي : هل هناك استدعاء لدالة template ؟ هات الوسطاء وخلّيني أنشئ دالة لهذا الاستدعاء يعني السحر فقط بإنشاء دوال جديدة لكل استدعاء مختلف الأخ  Erwin Unruh هو أول من كتب كود meta programming // Prime number computation by Erwin Unruhtemplate <int i>struct D{D(void*);operator int();};template <int p, int i>struct is_prime{        enum { prim = (p%i) && is_prime<(i > 2 ? p : 0), i -1> :: prim };};template < int i >struct Prime_print{    Prime_print<i-1> a;    enum { prim = is_prime<i, i-1>::prim };    void f() {    D<i> d = prim;    }};struct is_prime<0,0> { enum {prim=1}; };struct is_prime<0,1> { enum {prim=1}; };struct Prime_print<2> { enum {prim = 1}; void f() { D<2> d = prim; }};#ifndef LAST#define LAST 10#endifmain () {    Prime_print<LAST> a;        }صحيح أن الكود لم يعمل عندي كما يٌفترض به ( يعمل الكود بأن لا يعمل ولكن بطريقة احترافية يُفترض به أن يصدر errors تشير إلى رقم السطر الذي حدث فيه الخطأ , وأن تكون أرقام الأأسطر التي تسببت بالخطأ أوّليّة) ولكن لاحظت به عدّة أمور : enum ,و struct!! هذه أيضاً ما كنت أرفع عيني لأراها .. أنت يا enum .. جلست أسمع قصّتها .. ومعنا struct وجرى بيننا الحوار التالي : #include<cstdio>template<int a,int b>struct mosty{    static enum {fofo=(a%b==0)?0:mosty<a,b+1>::fofo};};template<int a>struct mosty<a,a>{    static enum {fofo=1 };};int main(){    printf("3  %i\n",mosty<3,2>::fofo);    printf("4  %i\n",mosty<4,2>::fofo);    printf("5  %i\n",mosty<5,2>::fofo);    printf("6  %i\n",mosty<6,2>::fofo);    printf("7  %i\n",mosty<7,2>::fofo);    printf("8  %i\n",mosty<8,2>::fofo);    printf("9  %i\n",mosty<9,2>::fofo);    printf("10 %i\n",mosty<10,2>::fofo);    printf("11  %i\n",mosty<11,2>::fofo);    printf("12 %i\n",mosty<12,2>::fofo);    printf("13 %i\n",mosty<13,2>::fofo);//الحب من النظرة 13    return 0;}ويا للعجب :) نجحت أخيراً ... قمت بكتابة أول MetaProgram ناجح .. وتم اختبار أولية العدد أثناء وقت التصريف compile time . وعندما حاولت الذهاب بها بعيداً printf("13 %i\n",mosty<1313,2>::fofo);انفجر الأب compiler :D في وجهي ..  fatal error C1001: An internal error has occurred in the compiler.وكانت هذه آخر مرة نتحدث فيها عن الموضوع .  0x36a2
  13. بسم الله الرحمن الرحيم   أود إخواني الأفاضل أن أشارككم العلم والمعرفة.. وأود طرح دورة نتعلم فيها لغة الـ PHP من الصفر حتى الاحتراف ..   فأود من الإخوة الأعضاء والمشرفين والمراقبين إبداء رأيهم في هذا الطرح .. وإذا كان مناسباً . دعونا نبدأ على بركة الله    
  14. استفسار عن احتراف برمجة لغة الجافا؟

    السلام عليكم ورحمة الله وبركاته انا عايزة اعرف ازاى احترف برمجة لغة الجافا JAVA؟ ممكن حد يساعدنى يا بشمهندسين
  15. السلام عليكم انا بحاجه  Regular Expression الخاصه بالتاريخ الهجري بصيغه yyyy/mm/dd ارجو المساعده
  16. السلام عليكم ورحمة الله وبركاته . هذا الدرس ضمن سلسة دروس الدورة التالية لتعلم لغة php ! السلاسل النصية والتعابير النظامية : يمكن تعريف السلسلة النصية انها عبارة عن مجموعة من المحارف يمكن تغيير محتواها بعد انشاءها , حيث تُوفر لغة php دوال متعددة لإجراء مختلف العمليات عليها . معرفة طول السلسلة النصية : في كثير من الاحيان عند التعامل مع السلاسل النصية يتوجب علينا معرفة طول السلسة النصية التي نتعامل معها , وللقيام بتلك المهمة نستخدم الدالة strlen التي تعيد طول السلسلة النصية المُمررة اليها , المثال التالي يطبع طول السلسة النصية المخزنة في المتغير string : <?php$string = 'This is a string';echo strlen($string);// outputs : 16?> تحويل حالة احرف اللغة الانكليزية : تقوم الدالة strtolower بتحويل حالة جميع الاحرف الانكليزية الى احرف صغيرة (أي مثلاُ تقوم باستبدال A بالحرف a) , وتفيد هذه الدالة على سبيل المثال عند تسجيل المستخدم في الموقع حيث نقوم بجعل جميع احرف المُعرف صغيرة حتى لا يكون لدينا مستخدمَين بنفس المُعرف . تقبل هذه الدالة وسيطا وحيداً هو السلسة النصية وتُعيد سلسلة نصية يكون فيها جميع الاحرف بالحالة الصغيرة : <?php$string = 'This Is A sTrIng 123';echo strtolower($string);// outputs : this is a string 123?>ويوجد هناك الدالة strtoupper التي تقبل نفس وسائط الدالة السابقة لكنها تحول حالة الاحرف الى احرف كبيرة :   <?php$string = 'This Is A sTrIng 123';echo strtoupper($string);// outputs : THIS IS A STRING 123?> لاحظ ان الارقام أوالاحرف العربية لا تتأثر بهاتين الدالتين . استبدال نص : عند الحاجة لاستبدال عبارة بعبارة اخرى , نستخدم الدالة str_replace التي يكون شكلها العام كالتالي : str_replace($search, $replace, $string);تقبل هذه الدالة ثلاث وسطاء اجباريين : الاول هو النص المراد البحث عنه ويمكن ان يكون نوع هذا المتغير سلسة نصية أو مصفوفة كما سنرى في الامثلة , والوسيط الثاني هو النص المراد استبدال النص السابق وكما في الوسيط السابق يمكن ان يكون نص أو مصفوفة , أما الوسيط الثالث فيكون السلسلة النصية التي ستجرى عليها عملية الاستبدال . تُعيد الدالة السابقة سلسة نصية تحوي على النص المُعدل . لازالة ما حصل من غموض جرب الامثلة التالية : <?php$string = 'this is a long string !!';$new_string = str_replace('long', 'short', $string);echo "The first string is : $string <br>";echo "The replaced string is : $new_string";?>في المثال السابق قمنا باستبدال الكلمة long الموجودة في السلسلة النصية الاولى بالكلمة short وقمنا بتخزين السلسلة النصية الناتجة في المتغير new_string . <?php$string = 'this is a long string !!';$new_string = str_replace(array('this', 'long', '!!'), array('This', 'short'), $string);echo "The first string is : $string <br>";echo "The replaced string is : $new_string";?>في هذا المثال قمنا بجعل الوسيطين الاول والثاني مصفوفات حيث يتم استبدال العناصر بالترتيب , ولكن - كما تلاحظ - فإن المصفوفة الاولى تحوي على العنصر الذي قيمته "!!" بدون وجود نظير له في المصفوفة الثانية مما يؤدي الى استبدال هذه القيمة بقيمة فارغة , المثال السابق سيعطي الخرج التالي : The first string is : this is a long string !! The replaced string is : This is a short string يجدر بالذكر بأن الدالة str_ireplace تعمل نفس عمل الدالة str_replace لكنها غير حساسة لحالة الاحرف . ازالة وسوم HTML : تقوم الدالة htmlentities باستبدال وسوم لغة HTML بمكافئاتها من ما يسمى html entities . فمثلا الرمز ">" يُستبدل ب "<" و الرمز "&" يُستبدل بـ "&" , و تُستخدم هذه الدالة لفلترة النصوص التي يقوم بادخالها المستخدم فمثلا ً : اذا ادخل المستخدم اسمه على الشكل التالي "<b>username</b>" فسيتم اظهار الاسم بخط عريض لكن عند استخدام الدالة htmlentities فسيتم اظهار الاسم كما تمت كتابته , المثال التالي يوضح ذلك : <?php$username = '<b>Abd Allatif</b>';echo 'The user name without using htmlentities function : '.$username;echo '<br>';echo 'The user name when using htmlentities function : '. htmlentities($username);?>اما الدالة htmlspecialchars فتقوم بنفس عمل الدالة  htmlentities إلا انها تقوم بتحويل محارف خاصة محددة , وكلا الدالتين يقوم بتحويل علامات الاقتباس المزدوجة الى "   وتتركان علامات الاقتباس المفردة دون تغيير ولاجبارهم على تحويلها الى html entities نستخدم الراية ENT_QUOTES كوسيط ثان , أما عند استخدام الراية ENT_NOQUOTE فلن يتم استبدالهما . فيكون الفرق الجوهري بين الدالتين, أن الأولى "htmlentities" ستقوم بتحويل كل محرف قابل للتحويل إلى نظيره من الـ html entities, أما الدالة الثانية "htmlspecialchars" فهي متخصصة في محارف الخاصة محددة فقط, كـ & و " و < و > و ( ' ولكن فقط عندما يكون الوسيط ENT_QUOTES ممرراً كما تم الإشارة سابقاً)    لإزالة الغموض جرب المثال التالي : <?phpheader('Content-Type: text/html; charset=utf-8');$string = '"السلام عليكم"';echo htmlspecialchars($string, ENT_NOQUOTES);echo '<br>';echo htmlentities($string);?>لذا من المُفضل في الحالة العامة ولهدف الحماية من بعض هجمات XSS استخدام الدالة htmlspecialchars . وتوجد دالة باسم strip_tags تقوم بازالة جميع وسوم HTML. التعابير النظامية Regular Expression : التعابير النظامية هي عبارة عن طريقة لكي نستطيع مطابقة نص معقد بواسطة عدد من المحارف والرموز ذات الدلالات الخاصة مثل *.؟ ...الخ , حيث توفر لغة php كما في سائر لغات البرمجة امكانية البحث و استبدال النصوص بواسطة التعابير النظامية . في السابق كانت لغة php تُوفر طريقتين لمعالجة نوعين من التعابير النظامية الاولى هي POSIX والثانية هي التعابير النظامية الخاصة بلغة perl , لكن لغة php قامت بازالة POSIX في الاصدار  5.3.0 لذا لن يتم التطرق لها . انشاء عبارات التعبير النظامية : يجب بدء عبارة التعبير النظامي يالرمز "/" ويجدب انهاءه بنفس الرمز , اقواس المحموعة [] تستخدم لتحديد عدد معين من المحارف (حروف أو ارقام أو رموز) مثلا : النمط [abc] يطابق a أو b أو c , أما النمط [a-z] فيطابق جميع الاحرف الانكليزية الصغيرة وايضا النمط [a-zA-Z0-9] يطابق جميع الاحرف الانكليزية بحالتيها (احرف كبيرة واحرف صغيرة) والارقام من 0 الى 9. اما لو أضفنا الرمز ^ بعد فتح قوس المجوعة فهو يشير الى عدم مطابقة مجموعة الاحرف التالية مثلا : [^a] لا يطابق الحرف a , ولكل رمز معنى خاص في التعابير النظامية موجودة في الجدول التالي : * المحرف "." يطابق أي محرف باستثناء محرف السطر الجديد "\n" * المحرف "؟" يطابق تكرار النمط 0 أو 1 مرة * المحرف "*" يطابق تكرار النمط 0 مرة أو أكثر * المحرف "+" يطابق تكرار النمط 1 مرة أو أكثر * التعبير {x} يطابق تكرار النمط x مرة * التعبير {x , y} يطابق تكرار النمط x مرة على الاقل و y مرة على الاكثر واذا اردت ان تقوم بمطابقة أي رمز من الرموز السابقة نستخدم رمز "/" قبلها . ويوجد عدد اخر من المعرفات يمكن استخدامها في التعابير النظامية فمثلا بدلا من استخدام النمط [0-9] نقوم باستخدام  المُعرف \d والجدول التالي يوضح اهم المعرفات : * المُعرف d\ يطابق أي رقم * المُعرف D\ يطابق أي محرف باستثناء الأرقام * المُعرف  s\ يطابق المحرف الذي يمثل فراغ " " * المُعرف S\ يطابق أي محرف باسثناء الفراغات * المُعرف ^ يطابق بداية السطر * المُعرف $ يطابق نهاية السطر * المُعرف w\ يطابق أي حروف أو ارقام لتفادي اللبس , المحرف ^ يطابق بداية السطر فقط اذا كان خارج أي نمط فرعي . أمثلة عن كتابة انماط للتعابير النظامية : اذا اردنا مطابقة تاريخ ما وكان هذا التاريخ مكتوب بضيغة "YYYY-MM-DD" فيمكن بكل سهولة مطابقته بواسطة النمط التالي : /(\d{4})-(\d{1,2})-(\d{1,2})/في النمط السابق يوجد ثلاث انماط فرعية حيث يفصل بينها - وكل نمط فرعي يجب ان يكون فقط رقم وذلك بتحديد \d ومن ثم تحديد عدد تكرارات كل منها . مثال اخر : مطابقة عنوان بريد الكتروني : يكون البريد الالكتروني عادة من الشكل : [email protected] [email protected] [email protected] [email protected]_mple.com ولمطابقة جميع الحالات يمكن استخدام النمط التالي : /^([a-zA-Z0-9_])[email protected]([a-zA-Z0-9_])+(\.[a-zA-Z0-9_]+)+$/النمط السابق معقد نسبيا , في البداية استخدمنا النمط ([a-zA-Z0-9_])+ الذي يطابق اي حرف من اللغة الانكليزية بالإضافة الى الارقام والشرطة السفلية _ , واشاردة + تدل على تكرار هذا النمط مرة أو اكثر , ومن ثم وضعنا الاشارة @ وبعدها تكرار لنفس النمط الفرعي السابق , وفي النهاية قمنا بمطابقة رمز النقطة (لا تنسى وضع الشرطة المائلة \ قبلها) ومن ثم النمط الفرعي السابق مع الانتباه الى اشارة + الثانية التي تسمح بوجود "مجالين" مثلا ".gov.sa" ولاحظ ايضا اننا بدأنا النمط باستخدام ^ وقمنا بإنهاءه باستخدام $ . دوال التعامل مع التعابير النظامية : البحث عن نمط : وذلك بواسطة الدالة preg_match حيث تقوم هذه الدالة بالبحث عن نمط للتعابير النظامية داخل سلسلة نصية , تُعيد هذه الدالة true في حال وجود مطابقة و false عدا ذلك , شكل الدالة العام : preg_match($pattern, $subject‬‬ , [$array_matches]);كما هو واضح , الوسيط الاول هو النمط الخاص بالتعابير النطامية و الوسيط الثاني هو السلسلة النصية التي سيتم البحث فيها أما الوسيط الثالث فهو اسم متغير المصفوفة التي سيتم تخزين نتائج المطابقة فيها وسيتم الحديث عنها لاحقا . الان لنجرب النمط السابق الذي يقوم بمطابقة تاريخ من الشكل : "YYYY-MM-DD" <?php$reg = '/(\d{4})-(\d{1,2})-(\d{1,2})/';$date1 = '1995-5-21';$date2 = '95-May-21';if(preg_match($reg, $date1) != false){    echo "Date '$date1' is a valid Date";}else{    echo "Date '$date1' is a NOT valid Date";}echo '<br>';if(preg_match($reg, $date2) != false){    echo "Date '$date2' is a valid Date";}else{    echo "Date '$date2' is a NOT valid Date";}?>الوسيط الثالث عند تحديده يقوم بانشاء مصفوفة حيث يكون العنصر الاول فيها (مفتاحه 0) يحوي الجملة التي تمت مطابقتها , اما بقية العناصر فتمثل الانماط الفرعية بالترتيب , فمثلا لنقم بتعديل المثال السابق كي نستطيع استخراج السنة و الشهر و التاريخ : <?php$reg = '/(\d{4})-(\d{1,2})-(\d{1,2})/';$date = '1995-5-21';if(preg_match($reg, $date, $results) != false){    echo "Date '$date' is a valid Date";    echo '<br>';    echo "The full match is {$results[0]} <br>";    echo "The Year is {$results[1]} <br>";    echo "The Month is {$results[2]} <br>";    echo "The Day is {$results[3]}";}else{    echo "Date '$date' is a NOT valid Date";}/*Date '1995-5-21' is a valid DateThe full match is 1995-5-21The Year is 1995The Month is 5The Day is 21*/?>الدالة preg_repalce : تقوم هذه الدالة باستبدال نص بنص اخر بالإعتماد على التعابير النظامية ويكون شكلها العام كالتالي : preg_replace($pattern, $replacement, $subject‬‬);ويوجد طريقتين لإستدعاء هذه الدالة : الطريقة الاولى أن تكون$replacement , $patternمصفوفات حيث يتم استبدال كل نمط محدد بعنصر من المصفوفة pattern بنص مقابل له من المصفوفة replacement . وأما الطريقة الثانية فتكون فيها $replacement , $pattern  سلسلتان نصيتان . المثال التالي يقوم بتحويل التاريخ من الشكل "YYYY-MM-DD" الى الشكل "DD|MM|YYYY" : <?php$reg = '/(\d{4})-(\d{1,2})-(\d{1,2})/';$replace = '$3|$2|$1';\\$0 represents the complete match , $1 the first sub-pattern , $2 the second sub-pattern ... etc.echo preg_replace($reg, $replace, '1995-5-21');?>في النهاية , موضوع التعابير النظامية موضوع كبير و متشعب ولا يمكن اختصاره ببضعة اسطر حيث يوجد هناك كتب كاملة تتحدث عنهم ككتاب Mastering Regular Expressions وايضا على php.net   تمرين قم بانشاء نمط للتحقق من صحة روابط من الشكل : http://www.example.com/..... https://www.example.net/...., http://example.com