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

الموضوع: امر غريب مع explode اريد تفسيراً

  1. #1
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    659

    امر غريب مع explode اريد تفسيراً



    السلام عليكم ...

    كود PHP:
     $number "aaaaaaaaaa";
     
    $ex explode("a"$number);

     foreach(
    $ex as $numm) {
     echo 
    $numm."?";

    هل هذا امر طبيعي ؟ المفروض ان دالة explode تأخذ اي شيئ ما عدا حرف a .. وعند اخراج ما بداخل متغير $ex تجد ان هناك حروف الـ a كلها المكتوبة في متغير number .. بينما انك اذا جئت وكتبت
    كود PHP:
    echo  $ex[1]; 
    لن تجد اي شيئ حتى وان جربت كل الارقام

    جرب ايضاً
    كود PHP:
    print_r($ex); 
    نحتاج إلى تفسير شـــــــــافي يا اخوان اذا سمحتم ..





    __________________
    مدونتي | تويتر



  2. #2


    اظن والله اعلم ..

    ان عندك string
    aaaaaaaaa

    لما تسوي explode

    راح يدور الاشياء اللي بين الdelimeter حقك وهو a

    يعني مافيه عناصر

    تماما مثل

    ,,,,,,,,

    وشو اللي بين الفواصل ؟ ولا شئ





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

  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    659


    طيب هو يدور على كل حرف هل هو المطلوب منعه ولا لأ .. الحين نبا نمنع حرف الـ a ونفترض اني كررت الـ a كثيير يعني جي مثلاً aaaaaa ليش يقولي انه في عدد 6 نتائج إذا استعلمت عنه بهالطريقة والمفروض انه يمسحهم كلهم ويعطيني نتيجة 0 لوجود متغيرات ممكن تنطبع
    كود PHP:
     print_r($ex); 






    __________________
    مدونتي | تويتر


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


    explode تأخذ البارامتر الاول الـ delimiter او ال seperator بتاعك ..

    وتقوم بازالة هو نفسه من السترينج الخاص بك ..

    بمعنى انه لو كان عندك :
    a|b

    وعملت explode بـ |
    سيكون هناك مصفوفة من عنصرين .. الاول 0 = a والثاني 1 = b


    والذي قمت به هنا .. انك استخدم حرف الـa كقاطع .. ولكن لا يوجد اي شيء !!

    جرب بنفس الكود الذي استخدمه ولكن على هذا السترينج
    abababababab

    ستجد ان هناك مصفوفة تحتوي على ال b الذي هو يقع بين الفاصل الذي قمت بتحديده ..

    ولتحديد عدد النتائج استخدم :
    كود PHP:
    <?php
    echo count($ex);
    ?>






    __________________
    SWF Thumbnail - tweet me

  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    659


    اخي كل ما تفضلت به هو صحيح ولكن مايحيرني هو
    عندما تكتب مثلاً هذا الكود

    كود PHP:
    $number "Hello Worlda";
    $ex explode("a"$number);
    echo 
    count($ex);
    echo 
    "<br>\n";
    print_r($ex); 
    المفروض بأنه يتم حذف الـ a الاخيرة ويتبقى فقط المتغير 0 والذي يحتوي على كلمة Hello World ..
    والموضوع مهم لأن لدي كود يعتمد على عدد المتغيرات بداخل هذه المصفوفة .. ومن الممكن ان يصادف ان يكون آخر حرف مسافة مثلاً فسيتم إنشاء متغير فارغ كما حدث هنا في هذا الكود ..





    __________________
    مدونتي | تويتر




  6. في هذة الحالة استخدم الدالة trim قبل اعطاء الString الى الدالة explode ..
    ولكن هل ممكن انتشرح لنى بامثلة حقيقة .. فال"aaaaaaaa" لا يعطينا اي معلومة عن ماهو هدفك من الكود

    وشكراً





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    659


    اخي hilaby المشكلة اني لا استطيع ان اضع الكود هنا لأنه مرتبط بأكواد اخرى وكثيرة ولكن لدي حلقة تكرار تعتمد على عدد المتغيرات بداخل مصفوفة $ex .. فالمشكلة لدي هي بأن إذا صادف ان المتغير الأصلي وهو $number في نهايته يوجد حرف a .. سيتم عمل متغير فارغ داخل المصفوفة $ex وستزيد حلقة التكرار رقم اضافي فارغ ..
    اتمنى ان الفكرة وصلت .. وارجوا منك اخي ان تشرح لي كيف سأستخدم tirm
    ملاحظة طبعاً حرف الـ a هو في الأصل راح يكون مسافة فقط .. يعني المطلوب حذفه هو المسافة " "

    تحياتي لك





    __________________
    مدونتي | تويتر


  8. #8


    طيب تاكد ان العنصر ليس فارغ ثم ادخله في قاعده البيانات ..

    كود PHP:
    if (!empty($ex[$i] )
    {
         
    //insert







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



  9. الداله trim تحذف المسافات في اول الجملة و اخر الجملة
    فمثلا : اذا كانت لديك الجملة " خالد فوق الشجرة " سيتحول الى "خالد فوق الشجرة" اي سيحذف المسافات الغير لازمة
    وطريقة الاستخدام هي

    كود PHP:
    $notCleanString " my name is Ali ";
    $cleanString trim($notCleanString);

    echo 
    $cleanString// "my name is ali" 






    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  10. #10
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    659


    اخي رياض القرآن حللت مشكلة وظهرت اخرى ...
    اخي hilaby لك جزيييل الشكر والله حلت جزء كبيير جداً من المشكلة دالة tirm
    ولكم
    سأضع الكود وشرح لما يفعله الكود مع ان معرفة فائدته ستكون صعبة بعض الشيئ ...


    كود PHP:

     <form method="post" action="asd.php">
    <b>Numbers</b><br>
    Num <input name="number" type="text" value=""><br>
    Dots <input name="dots" type="text" value="">
    <br>
     <input type="submit" value="Send"> <br><br>
    </form>


    <?php



     
    //num start
     
    $number trim($_POST[number]);
     
    $ex explode(" "$number);
     
    $count count($ex);
     
    //num end

     //dots start
     
    $dots trim($_POST[dots]);
     
    $d_ex explode(" "$dots);
     
    $d_count count($d_ex);
     
    //dots end


     
    for ($i=0$i<$count$i++){

     for (
    $v=0$v<$d_count$v++){
     
    $d_c strlen($d_ex[$v]);
     
    $endo $ex[$i][$v]."-".$d_c;

     echo 
    $endo;
     echo 
    " ";
     echo 
    "<br>\n";
     }

    }

    ?>
    فقط قم بتغيير اسم الملف المراد تنفيذ الأمر عليه في الفور في الاعلى ..
    وظيفة الكود هي ان تضع ارقام مثلاً 334 في المربع الأول .. وفي المربع الثاني تضع مثلاً ثلاث نقاط بهذا الشكل " ... " ثم مسافة ثم نقطة واحدة ثم نقطة واحدة ... اي عدد نقاط لكل رقم ..
    كمثال مثلاً

    الارقام
    344
    النقاط
    ...... ... ....
    النتيجة
    3-6
    4-3
    4-4
    على اليمين الارقام وعلى يسار كل رقم عدد النقاط التي كتبناها في الأسفل .. إلى الآن يعمل كل شيئ بنجاح ..
    ولكن لو وضعنا مجموعتين من الارقام كهذه مثلاً 344 455 ووضعنا النقاط لكل رقم تبدأ الاخطاء وتظهر اسطر بدون ارقام ولا ادري من اين من اين الخطأ
    تعبت





    __________________
    مدونتي | تويتر


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


    رغم اني لم افهم بعد الفائدة من الكود .. من تحويل الدوتس إلى ارقام !

    ولكن .. الخطأ الذي عندك ليس في الكود .. ولكن في تحليل المشكلة ،

    الآن انت لديك مثال مبسط :
    123
    سيكون
    . .. ...

    لاحظ اننا كتبنا الارقام مباشرة 123 ولكن في النقاط .. فصلنا بين كل مجموعة من النقاط ( بما يقابلها من الارقام ) بمسافة ..

    فالآن صارت المشكلة في هذا :
    123 45

    هناك مسافة ، اي انها مجموعتين من الارقام
    تعال نشوف نقاطهم :
    . .. .. .... .....

    لا يوجد فاصل ثاني ؟
    بمعنى ان الارقام تحمل مجموعتين وتستطيع تحديدهم من خلال المسافة .. ولكن النقاط ؟ كيف سيتم تفريقهم ؟

    ساقوم بعمل الكود مرة اخرى بشكل مختلف قليلا ..





    __________________
    SWF Thumbnail - tweet me

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


    كود PHP:
    <?php 


    if ($_POST){
        
    $groups explode(" "trim($_POST['number']));
        
    $gCount count($groups);
        
        
    $dotsG explode(" "trim($_POST['dots']));
        
        for (
    $i=0$i<$gCount$i++){
            
    $Numbers explode("-"$groups[$i]);
            
    $Dots explode("-"$dotsG[$i]);
            
            
    $n count($Numbers);
            

            for(
    $j=0$j<$n$j++)
                echo 
    $Numbers[$j]."-".strlen($Dots[$j])."<br/>";
        }
        exit;
                
            
    }

    ?>

    الآن اصبح هناك 2 seperators ..

    الاول او الاعم هو المسافة " "
    والثاني هو الداش "-"

    جرب ان تضيف الارقام التالية :
    1-2-3 4-5
    والنقاط بنفس النظام
    .-..-... ....-.....

    وعلى اي حال .. للآن لم افهم ماذا تريد ! اعتقد ان هذه ليست احسن طريقة لتنفيذ ما تريد

    تحياتي





    __________________
    SWF Thumbnail - tweet me





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

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

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