صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 40

الموضوع: مسابقة للمبرمجين.. اكتب الداله التاليه

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73

    مسابقة للمبرمجين.. اكتب الداله التاليه



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

    كل عام وانتم بخير ومبارك عليكم باقي الشهر الكريم :]

    كنت اتصفح ملفاتي القديمه.. فوجدت داله قمت بكتابتها منذ زمن وكانت سيئة جدا فأردت ان اعد كتابتها وارى كم سطر ستكون

    عموما.. ندخل في المسابقه وشروطها

    الفكرة:
    عمل داله تقوم بعمل ال highlight
    مثلا عندما تبحث في جوجل عن كلمة معينه فإنه يظهرها بالخط العريض
    وبعض المواقع تقوم بتغيير لون خلفية الكلمة المبحوث عنها لكي تميزها عن غيرها

    اما الشروط فهي:
    1) امكانية تحديد نوع الوسم المستخدم للكلمة سواء كان span, font, div,...الخ
    مثال
    كود:
     <span>word</span>
     <font>word</font>
    2) امكانية استخدام ال class او id معين او وضع التصميم تلقائيا style او اي صفه اخرى
    مثال
    كود:
     <span class="blabla">word</span>
     <span id="blabla">word</span>
     <span style="font-weight:bold;">word</span>
    3) تحديد كل الكلمات الموجوده بالنص مهما تكررت
    4) مراعاة حالة الاحرف للكلمة
    مثال
    ان كانت الكلمة هي:
    كود:
    swalif
    وكانت الجملة هي:
    كود:
     Swalif is a cool website. And I love SWALIF softs
    فيجب استبدال الكلمة الاولى كما هي والكلمة الاخرى كما هي
    كود:
     <span>Swalif</span> is a cool website. And I love <span>SWALIF</span> softs
    انظر الى الاحرف
    5) امكانية البحث عن اكثر من كلمة او كلمة واحده
    6) امكانية الحصول على مثل الكلمات التي نبحث عنها (أي مطابقتها تماما) او بتجزئة الكلمات وتظليل كل كلمة على حده
    7) وهو الأهم.. ألا تزيد محتوايات الداله عن 10 اسطر

    ملاحظة: قمت بكتابتها ب 7 اسطر

    في انتظار المتسابقين :]

    بالتوفيق للجميع





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    281


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

    أعتقد هذة الدالة تناسب احتياجاتك

    وهذ مثال :-

    كود PHP:
    <?
    function text_color($text$words$h)
    {
        if ( !
    is_array($words) )
        {
            
    $words explode(','$words);
        }
        
    $arrayc = array();
        if ( 
    is_array($words) ) 
        {
            foreach(
    $words as $val
            {
                
    $arrayc[] = str_replace('%c%'$val$h);
            }
        }
        return 
    str_replace($words$arrayc$text);
    }

    /**
     * تتيح هذة الدالة أدخل سطر من الكلمات وتفصل كل كلمة عن الاخرة هذة العلامة , $words = 'ض,ث,ف,ع,خ,ج,ش,ي,ل,ت,ن,ك,ئ,ؤ,لا,ة,ظ';
     * وممك أدخل مصفوفة من الكلمات المراد تلوينها او تظليلها  $words = array('ض', 'ث', 'ف', 'ع', 'خ', 'ج', 'ش', 'ي', 'ل', 'ت', 'ن', 'ك', 'ئ', 'ؤ', 'لا','ة', 'ظ');
    */
    $words = array(
            
    'ض'
            
    'ث'
            
    'ف'
            
    'ع'
            
    'خ'
            
    'ج'
            
    'ش'
            
    'ي'
            
    'ل'
            
    'ت'
            
    'ن'
            
    'ك'
            
    'ئ'
            
    'ؤ'
            
    'لا',
            
    'ة'
            
    'ظ'
        
    );
    // النص
    $text 'بسم الله الرحمن الرحيم<br />والسلام عليكم ورحمة الله وبركاتة<br />وكل عام وأنتم بخير<br />سبحان الله وبحمد سبحان الله العظيم';
    print 
    text_color($text$words'<font color="#FF0000">%c%</font>');

    ?>







  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    محاولة بسيطة مع اني لم افهم النقطة رقم 6

    كود PHP:
    function highlight($text,$word,$pattern,$more='')
    {
     return 
    preg_replace('/('.$word.')/mi'"<$pattern $more>$1</$pattern>"$text); 

    مثال للتجربة:

    كود PHP:
    echo highlight("Swalif is a cool website. And I love SWALIF softs","swalif","font","color='red'"); 
    اتمنى ان يكون هذا يؤدي الغرض وارجو منك توضيح النقطة 6





    التعديل الأخير تم بواسطة مهندس مصرى ; 05-09-2009 الساعة 05:01 AM
    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    عزيزي tech

    جرب التالي

    كود PHP:
    $t "The quick fox jumped over the lazy dog";
     
    $s = array('the');
     echo 
    text_color($t,array('the'), '<font color="#FF0000">%c%</font>'); 
    سترى انها قامت بتظليل the وتغاضت عن The
    هذا بالاضافه لاستعمالك str_replace اكثر من مرة بسبب وجودها داخل حلقة التكرار (مما يسبب بطئ في التنفيذ اذا ماكان النص طويل :])

    وياحبذا لو تقم بتغيير النص المراد البحث عنه فلا يكن بصيغة مصفوفه وانما بصيغة نص عادي ومن ثم تقم بمعالجته في الداله


    --------------

    عزيزي مهندس مصري

    ممتاز جدا واحييك على استخدامك لدالة
    preg_replace
    ولكن ماذا لو اردنا البحث عن swalif و cool
    ؟؟

    لم تفهم النقطه 6 وذلك بسبب تقصير مني في الشرح

    اي اني اريد ان تكون مثل جوجل اذا ماوضعت "bla1 bla2" فإنه يقوم بمطابقة الكلمات دون تجزيئهم والبحث عن bla1 ثم البحث عن bla2
    بل يبحث عنهما معا وبنفس الترتيب

    وليس ضروري ان تستخدم علامة الاقتباس "
    فبامكانك تعيين باراميتر لهذا الغرض

    بالتوفيق للجميع





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة

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


    عدلت على دالة الاخ مهندس مصري
    بس بـ 12 سطر ..اضن مسموح زيادة سطرين
    كود PHP:
       <?

    function highlight($text,$word,$pattern,$more='',$g=""){    
    if(
    $g==1){
    $spreg_replace('/('.$word.')/mi'"<$pattern $more>$1</$pattern>"$text); 
    }else{
    $words explode(' '$word);
    $countcount($words)-1;
    $s=$text;
    for(
    $i=0;$i<=$count;$i++){
    $spreg_replace('/('.$words[$i].')/mi'"<$pattern $more>$1</$pattern>"$s); 
    } }
    return 
    $s;

      echo 
    highlight("Swalif is a cool website. And I love SWALIF softs","swalif cool","font","color='red'");  
    echo
    "<br/>";
      echo 
    highlight("Swalif is a cool website. And I love SWALIF softs","swalif","font","color='red'",1);  
    ?>
    البارمتر $g هذي للنقطه السادسه





    التعديل الأخير تم بواسطة رومنسي ksa ; 06-09-2009 الساعة 12:02 AM سبب آخر: شرح $g

  6. #6
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    طيب ما رايك في هذا التعديل

    كود PHP:
    function highlight($text,$words,$confirm=true,$pattern,$more='')
    {
     if(
    is_array($words)){
      while(list(,
    $word)=each($words)){
       if(!
    $confirm){
        
    $exp explode(" ",$word);
        foreach(
    $exp as $val){
         
    $text preg_replace('/('.$val.')/mi'"<$pattern $more>$1</$pattern>"$text);
        }
       }
       else 
    $text preg_replace('/('.$word.')/mi'"<$pattern $more>$1</$pattern>"$text);
      }
     }
     else 
    $text preg_replace('/('.$words.')/mi'"<$pattern $more>$1</$pattern>"$text);
     return 
    $text;

    طبعا الاقواس لا تُحسب في الاسطر والا ساضع كل الدالة في سطر واحد

    التطبيق بكل الخواص التي ذُكرت في النقاط ..
    كود PHP:
    echo highlight("Swalif is a cool website. And I love SWALIF softs",array("swalif love","i"),false,"font","color='red'"); 






    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    نسيت الشرح
    طبعاً البارامتر $words تستطيع وضعه array اذا كنت ترغب في البحث عن اكثر من كلمة مختلفة ويمكن ان تضع كلمة واحدة بدون array اذا اردت البحث عن كلمة واحدة

    البارامتر $confirm وهو يخص البحث المطابق اذا وضعته true سيقوم بعمل استبدال مطابق بنفس الجملة التي وضعتها واذا كان false سيقوم بتقسيم الجملة الى كلمات و تظليل كل الكلمات بالجملة
    :nice:





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    اختصار كمان .. لماذا نتعب نفسنا ونعرّف متغيرات جديدة .. الاختصار حلو

    بدل عمل السطر
    كود PHP:
    $exp explode(" ",$word); 
    وتعريفه في متغير جديد نضعه في ال foreach نفسها

    كود PHP:
    function highlight($text,$words,$confirm=true,$pattern,$more='')
    {
     if(
    is_array($words)){
      while(list(,
    $word)=each($words)){
       if(!
    $confirm){
        foreach(
    explode(" ",$word) as $val){
         
    $text preg_replace('/('.$val.')/mi'"<$pattern $more>$1</$pattern>"$text);
        }
       }
       else 
    $text preg_replace('/('.$word.')/mi'"<$pattern $more>$1</$pattern>"$text);
      }
     }
     else 
    $text preg_replace('/('.$words.')/mi'"<$pattern $more>$1</$pattern>"$text);
     return 
    $text;







    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  9. #9
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    281


    السلام عليكم

    DSQ8.com :- بالنسبة لأدخال الكلمات يوجد خياران 1- ادخال مصوفة الكلمات. 2- ادخل الكلمات وتفصل كل كلمة العلامة ,

    بالنسبة ل str_replace الى بتتكرر داخل الدالة foreach ممكن نخلى تؤدى العمل مرة واحدة بدل التكرار , وممكن تعامل الكلمات مع النص بدون حساسية.

    لى عودة بهذا التعديل






  10. #10
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    يا سلام عليكم

    والله انكم :1power:

    وهذي دالتي

    كود PHP:
    function dsHighlight($dsHaystack=''$dsNeedle=''$dsExact=FALSE$dsAttributes='style="text-decoration:underline;"'$dsTag='span') {
        
    $dsNeedle = ($dsExact===TRUE) ? array($dsNeedle) : 
        
    $dsNeedle strstr($dsNeedle' ') ? explode(' '$dsNeedle) : array($dsNeedle);
        foreach(
    $dsNeedle as $dsNum => $dsWord) {
            
    $dsNeedle[$dsNum] = "/\b($dsWord)\b/is";
            
    $dsReplace[$dsNum] = "<$dsTag $dsAttributes>\\1</$dsTag>";
        }
        return 
    preg_replace($dsNeedle$dsReplace$dsHaystack);

    الباراميتر الاول للنص
    والثاني للكلمة او الكلمات المراد البحث عنها
    والثالث FALSE او TRUE
    FALSE = عدم المطابقه
    TRUE = المطابقة
    والرابع للسمات ومحتوى الوسم
    والخامس لاسم الوسم المراد استخدامه :]


    يلا الحين دور واحد فيكم يعطينا سؤال :]

    وبالتوفيق للجميع





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة

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


    طيب السؤال عندي بعد اذن الاخوه
    -دالة بحث في قواعد البيانات وهذي شروط الداله :
    شرط واحد فقط وهيا انها تبحث مثل قوقل ولكن داخل موقعك
    مثلا اذا اردت ابحث عن مشاركات عضو اكتب user:hatem وتطلع لي مشاركاته فقط او اسبقها بكلمه للبحث عن الكلمه في مشاركاته
    و مثلا للبحث عن النص بدقه نستعمل علامة التصنيص(") ونبحث عن النص كلمة كلمه عند عدم استخدام علامة التنصيص
    وغيرها من طرق البحث في قوقل
    وراح اكون اكرم منDSQ8.com
    عدد الاسطر يكون مايتعدى 15
    ويكفيني 5 طرق للبحث
    وايضا تقدرون تألفون طرق جديده من عندكم مو شرط زي قوقل

    اتمنى تكون واضحه الدالة
    للفائده:طرق البحث في قوقل - بحث Google‏






  12. #12
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    تم حذف السؤال فلقد سبقني به الاخ رومنسي ksa
    وساؤجل سؤالي الى ما بعده






    التعديل الأخير تم بواسطة مهندس مصرى ; 06-09-2009 الساعة 04:12 AM
    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  13. #13
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    طيب السؤال عندي بعد اذن الاخوه
    -دالة بحث في قواعد البيانات وهذي شروط الداله :
    شرط واحد فقط وهيا انها تبحث مثل قوقل ولكن داخل موقعك
    مثلا اذا اردت ابحث عن مشاركات عضو اكتب user:hatem وتطلع لي مشاركاته فقط او اسبقها بكلمه للبحث عن الكلمه في مشاركاته
    و مثلا للبحث عن النص بدقه نستعمل علامة التصنيص(") ونبحث عن النص كلمة كلمه عند عدم استخدام علامة التنصيص
    وغيرها من طرق البحث في قوقل
    وراح اكون اكرم منDSQ8.com
    عدد الاسطر يكون مايتعدى 15
    ويكفيني 5 طرق للبحث
    وايضا تقدرون تألفون طرق جديده من عندكم مو شرط زي قوقل

    اتمنى تكون واضحه الدالة
    للفائده:طرق البحث في قوقل - بحث Google‏
    محاولة ..

    كود PHP:
    function search($keyword)
    {
     if(
    preg_match('/^(user:)/',$keyword))
     {
      
    $exp   explode("user:",$keyword);
      
    $user  $exp[1];
      
    $sql[] = "SELECT * from table where user= '$user'";
      exit;
     }
     
     if(!
    preg_match('/^(".*")$/',$keyword))
     {
      
    $keywords explode(" ",$keyword);
      foreach(
    $keywords as $keyword)
      {
       
    $sql[] = "SELECT * from table where title like '%$keyword%'";
      }
     }
     else 
    $sql "SELECT * from table where title like '%$keyword%'";

    طبعا وضعت الاستعلامات على شكل متغيرات فلا داعي لكتابة الدوال





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  14. #14
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    73


    عزيزي رومنسي

    سؤال يحتاج لكلاس وليس لمجرد داله :] ولا يمكنك حصر جميع الطرق التي يستخدمها جوجل في 15 سطر فقط

    لذلك اقترح عليك ان تقوم بتبسيط السؤال او تغييره





    __________________
    مملكة الموت
    =======================
    100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة

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


    مهندس مصري بس هذي طريقتين فقط^,^
    وانا طلبت حد ادنى 5 طرق
    ومو شرط من قوقل فقط تستطيع ان تخترع ميزات اخرى
    ---
    DSQ8.com
    انا ماطلبتها كلها طلبت 5 طرق فقط
    واذا بتقدر تجيب اكثر من خمسه تكون بطل^,^

    ويالله اذا تشوفنها صعبه نزودها 5 اسطر يعني صار المسموح فيه 20 سطر










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

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

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