-
לתועלת הציבור, אני משתף כאן מקלדת איכותית ל-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) * =
כאמור, נשמח בכל שידרוג המקלדת לתועלת כלל הציבור.
תודה.. -