• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    מקלדת

    טיפים עצות והדגמות מהמשתמשים
    מקלדת api php
    1
    1
    137
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ע
      ע.ג. נערך לאחרונה על ידי ע.ג.

      לתועלת הציבור, אני משתף כאן מקלדת איכותית ל-PHP.
      נשמח אם חברי הפורום יוסיפו וישכללו את המקלדת.
      ההקלדה רציפה, כמו כתיבת איש קשר, ובסיום סולמית.
      בין שני אותיות על אותו מקש יש להקיש * (-כוכבית).
      הקשת *** (-שלוש פעמים כוכבית) מוחקת את האות האחרונה שהוקשה.
      להלן המקלדת:

       function digitsToText($digits) {
      
          $array_number = [
              22222222, 2222222, 222222, 22222, 2222, 222, 22, 2, 
              33333333, 3333333, 333333, 33333, 3333, 333, 33, 3, 
              44444444, 4444444, 444444, 44444, 4444, 444, 44, 4, 
              55555555, 5555555, 555555, 55555, 5555, 555, 55, 5, 
              66666666, 6666666, 666666, 66666, 6666, 666, 66, 6, 
              777777777, 77777777, 7777777, 777777, 77777, 7777, 777, 77, 7, 
              88888888, 8888888, 888888, 88888, 8888, 888, 88, 8, 
              999999999, 99999999, 9999999, 999999, 99999, 9999, 999, 99, 9, 
              '00000000000000', '0000000000000', '000000000000', '00000000000', '0000000000', 
              '000000000', '00000000', '0000000', '000000', '00000', '0000', '000', '00', '0', 
              11111111111, 1111111111, 111111111, 11111111, 1111111, 111111, 11111, 1111, 111, 11, 1, '*'
          ];
          
          $array_abc = [
              "c", "b", "a", 2, 2, "ו", "ה", "ד", 
              "f", "e", "d", 3, 3, "ג", "ב", "א", 
              "i", "h", "g", 4, "ן", "נ", "ם", "מ", 
              "l", "k", "j", 5, "ל", "ך", "כ", "י", 
              "o", "n", "m", 6, 6, "ט", "ח", "ז", 
              "s", "r", "q", "p", 7, 7, "ת", "ש", "ר", 
              "v", "u", "t", 8, 8, "ק", "ץ", 'צ', 
              "z", "y", "x", "w", 9, "ף", "פ", "ע", 'ס', 
              ">", "<", "#", "%", "$", "@", "&", "/", "=", "*", "-", "+", "0", " ", 
              "]", "[", ")", "(", ":", "!", "?", "'", 1, ",", ".", ""
          ];
      
          $parts = explode('***', $digits);
      
          if (count($parts) > 1) {
              while (in_array('', $parts, true)) {
                  foreach ($parts as $index => $part) {
                      if ($part === '' && $index > 0) {
                          $prevIndex = $index - 1;
                          $prevPart = $parts[$prevIndex];
      
                          foreach ($array_number as $seq) {
                              if (str_ends_with($prevPart, strval($seq))) {
                                  $parts[$prevIndex] = substr($prevPart, 0, -strlen($seq));
                                  unset($parts[$index]);
                                  $parts = array_values($parts);
                                  break 2;
                              }
                          }
                      } elseif ($part === '' && $index === 0) {
                          unset($parts[$index]);
                          $parts = array_values($parts);
                          continue 2;
                      }
                  }
              }
      
              $lastPart = array_pop($parts);
      
              foreach ($parts as &$part) {
                  foreach ($array_number as $seq) {
                      if (str_ends_with($part, strval($seq))) {
                          $part = substr($part, 0, -strlen($seq));
                          break;
                      }
                  }
              }
      
              $digits = implode('', $parts) . $lastPart;
          }
      
          $text = '';
          while ($digits !== '') {
              $matched = false;
              foreach ($array_number as $index => $seq) {
                  $seqStr = strval($seq);
      
                  if (str_starts_with($digits, $seqStr)) {
                      $text .= $array_abc[$index];
                      $digits = substr($digits, strlen($seqStr));
                      $matched = true;
                      break;
                  }
              }
      
              if (!$matched) {
                  $text .= $digits[0];
                  $digits = substr($digits, 1);
              }
          }
      
          return $text;
      }
      
      

      להלן דוגמה לשימוש במקלדת:

      // דימוי מערך GET עם פרמטר digits
      $_GET['digits'] = '77555522244099222555544';
      
      // העברת הקלט מה-GET למשתנה
      $digits = $_GET['digits'];
      
      // קריאה לפונקציה והכנסת התוצאה למשתנה
      $text = digitsToText($digits);
      
      // הדפסת התוצאה
      echo $text;
      

      להלן מקרא המקלדת:

      (1) 1 = .  
      (2) 11 = ,  
      (3) 111 = 1  
      (4) 1111 = '  
      (5) 11111 = ?  
      (6) 111111 = !  
      (7) 1111111 = :  
      (8) 11111111 = (  
      (9) 111111111 = )  
      (10) 1111111111 = [  
      (11) 11111111111 = ]  
      
      (1) 2 = ד  
      (2) 22 = ה  
      (3) 222 = ו  
      (4) 2222 = 2  
      (5) 22222 = 2  
      (6) 222222 = a  
      (7) 2222222 = b  
      (8) 22222222 = c  
      
      (1) 3 = א  
      (2) 33 = ב  
      (3) 333 = ג  
      (4) 3333 = 3  
      (5) 33333 = 3  
      (6) 333333 = d  
      (7) 3333333 = e  
      (8) 33333333 = f  
      
      (1) 4 = מ  
      (2) 44 = ם  
      (3) 444 = נ  
      (4) 4444 = ן  
      (5) 44444 = 4  
      (6) 444444 = g  
      (7) 4444444 = h  
      (8) 44444444 = i  
      
      (1) 5 = י  
      (2) 55 = כ  
      (3) 555 = ך  
      (4) 5555 = ל  
      (5) 55555 = 5  
      (6) 555555 = j  
      (7) 5555555 = k  
      (8) 55555555 = l  
      
      (1) 6 = ז  
      (2) 66 = ח  
      (3) 666 = ט  
      (4) 6666 = 6  
      (5) 66666 = 6  
      (6) 666666 = m  
      (7) 6666666 = n  
      (8) 66666666 = o  
      
      (1) 7 = ר  
      (2) 77 = ש  
      (3) 777 = ת  
      (4) 7777 = 7  
      (5) 77777 = 7  
      (6) 777777 = p  
      (7) 7777777 = q  
      (8) 77777777 = r  
      (9) 777777777 = s  
      
      (1) 8 = צ  
      (2) 88 = ץ  
      (3) 888 = ק  
      (4) 8888 = 8  
      (5) 88888 = 8  
      (6) 888888 = t  
      (7) 8888888 = u  
      (8) 88888888 = v  
      
      (1) 9 = ס  
      (2) 99 = ע  
      (3) 999 = פ  
      (4) 9999 = ף  
      (5) 99999 = 9  
      (6) 999999 = w  
      (7) 9999999 = x  
      (8) 99999999 = y  
      (9) 999999999 = z  
      
      (1) 0 =  
      (2) 00 = 0  
      (3) 000 = +  
      (4) 0000 = -  
      (5) 00000 = *  
      (6) 000000 = =  
      (7) 0000000 = /  
      (8) 00000000 = &  
      (9) 000000000 = @  
      (10) 0000000000 = $  
      (11) 00000000000 = %  
      (12) 000000000000 = #  
      (13) 0000000000000 = <  
      (14) 00000000000000 = >  
      
      (1) * =  
      

      כאמור, נשמח בכל שידרוג המקלדת לתועלת כלל הציבור.
      תודה..

      תגובה 1 תגובה אחרונה תגובה ציטוט 5
      • הוזכר על-ידי  ע ע.ג. 
      • הוזכר על-ידי  ת תפארת יעקבב 
      • פוסט ראשון
        פוסט אחרון