איך עושים במקלדת טלפונית הקלדה רציפה ללא צורך בסולמית אחרי כל אות (כמו שיש בכמה מודולי API)?
-
function digits2abc($k) { $array_number = [3333, 333, 33, 3, 2222, 222, 22, 2, 6666, 666, 66, 6, 55555, 5555, 555, 55, 5, 44444, 4444, 444, 44, 4, 99999, 9999, 999, 99, 9, 8888, 888, 88, 8, 7777, 777, 77, 7, 0, 00, 000, 0000, 00000, 1, 11, 111, 1111, 11111, '*']; $array_abc = [3, "ג", "ב", "א", 2, "ו", "ה", "ד", 6, "ט", "ח", "ז", 5, "ל", "ך", "כ", "י", 4, "ן", "נ", "ם", "מ", 9, "ף", "פ", "ע", 'ס', 8, "ק", "ץ", 'צ', 7, "ת", "ש", "ר", " ", "+", "-", "@", 0, ".", "?", "!", ",", 1, ""]; return str_replace($array_number, $array_abc, $k); }
לכאורה זה הקוד
@לעזור-לכולם זה בסדר? -
@לעזור-לכולם הקוד שהעליתי זה בדיוק מה שעשית רק שהוספתי בסוף עוד כמה נתונים גם מההקשות וגם ממה שאמור להיות במקומם לפי הסדר, אבל למעשה אם אני מקיש 00000 נהיה לי חמש רווחים... ואם אני מקיש 11111 נהיה לי חמש נקודות
למה? -
@שמואל-ש
צריך להשים את המשפר הגדול בהתחלה
כלומר מהגדול לקטן
(הוא מחליף את מה שהוא מוצא ראשון ודו"ק כי זמני דחוק ב"ה) -
@לעזור-לכולם עשיתי ככה
function digits2abc($k) { $array_number = [3333, 333, 33, 3, 2222, 222, 22, 2, 6666, 666, 66, 6, 55555, 5555, 555, 55, 5, 44444, 4444, 444, 44, 4, 99999, 9999, 999, 99, 9, 8888, 888, 88, 8, 7777, 777, 77, 7, 00000, 0000, 000, 00, 0, 11111, 1111, 111, 11, 1, '*']; $array_abc = [3, "ג", "ב", "א", 2, "ו", "ה", "ד", 6, "ט", "ח", "ז", 5, "ל", "ך", "כ", "י", 4, "ן", "נ", "ם", "מ", 9, "ף", "פ", "ע", 'ס', 8, "ק", "ץ", 'צ', 7, "ת", "ש", "ר", 0, "@", "-", "+", " ", 1, ",", "!", "?", ".", ""]; return str_replace($array_number, $array_abc, $k); }
ואם אני עושה למשל 00000 הוא מדפיס לי @@@@@
-
@שמואל-ש
שינית את הסדר גם בשורה השניה? -
@לעזור-לכולם א. מה עובד למסקנא ב. איפה אני מגדיר את המשתנה
-
@לעזור-לכולם כתב באיך עושים במקלדת טלפונית הקלדה רציפה ללא צורך בסולמית אחרי כל אות (כמו שיש בכמה מודולי API)?:
@שמואל-ש
שינית את הסדר גם בשורה השניה?כן, רק משום מה כאן זה השתנה...
-
@לעזור-לכולם כתב באיך עושים במקלדת טלפונית הקלדה רציפה ללא צורך בסולמית אחרי כל אות (כמו שיש בכמה מודולי API)?:
@שמואל-ש
שינית את הסדר גם בשורה השניה? -
@שמואל-ש יש משהו עובד?
-
@שמואל-ש צריך גם לעשות קריאה לפונקציה? ואיפה אני מכניס לו משתנה
-
@121244 כתב באיך עושים במקלדת טלפונית הקלדה רציפה ללא צורך בסולמית אחרי כל אות (כמו שיש בכמה מודולי API)?:
@שמואל-ש צריך גם לעשות קריאה לפונקציה? ואיפה אני מכניס לו משתנה
אם הקוד בקובץ אחר צריך לקרוא לו, ואז לשלוח לפונקצייה את המשתנה של ההקשות שהקיש המשתמש
-
@שמואל-ש
אתה לא חייב כמובן להשתמש בפונקציה, אתה יכול להעתיק את הקוד עצמו.
רק לא לשכוח לשנות את המשתנה $k לשם ה'גט' של הטקסט$array_number = [3333, 333, 33, 3, 2222, 222, 22, 2, 6666, 666, 66, 6, 55555, 5555, 555, 55, 5, 44444, 4444, 444, 44, 4, 99999, 9999, 999, 99, 9, 8888, 888, 88, 8, 7777, 777, 77, 7, 00000, 0000, 000, 00, 0, 11111, 1111, 111, 11, 1, '*']; $array_abc = [3, "ג", "ב", "א", 2, "ו", "ה", "ד", 6, "ט", "ח", "ז", 5, "ל", "ך", "כ", "י", 4, "ן", "נ", "ם", "מ", 9, "ף", "פ", "ע", 'ס', 8, "ק", "ץ", 'צ', 7, "ת", "ש", "ר", 0, "@", "-", "+", " ", 1, ",", "!", "?", ".", ""]; echo str_replace($array_number, $array_abc, $k);
-
@מתכנת-בעתיד כמובן.
אבל את התיוג תעשה לשואל השאלה @121244 ... -
@מתכנת-בעתיד כתב באיך עושים במקלדת טלפונית הקלדה רציפה ללא צורך בסולמית אחרי כל אות (כמו שיש בכמה מודולי API)?:
@שמואל-ש
אתה לא חייב כמובן להשתמש בפונקציה, אתה יכול להעתיק את הקוד עצמו.
רק לא לשכוח לשנות את המשתנה $k לשם ה'גט' של הטקסט$array_number = [3333, 333, 33, 3, 2222, 222, 22, 2, 6666, 666, 66, 6, 55555, 5555, 555, 55, 5, 44444, 4444, 444, 44, 4, 99999, 9999, 999, 99, 9, 8888, 888, 88, 8, 7777, 777, 77, 7, 00000, 0000, 000, 00, 0, 11111, 1111, 111, 11, 1, '*']; $array_abc = [3, "ג", "ב", "א", 2, "ו", "ה", "ד", 6, "ט", "ח", "ז", 5, "ל", "ך", "כ", "י", 4, "ן", "נ", "ם", "מ", 9, "ף", "פ", "ע", 'ס', 8, "ק", "ץ", 'צ', 7, "ת", "ש", "ר", 0, "@", "-", "+", " ", 1, ",", "!", "?", ".", ""]; echo str_replace($array_number, $array_abc, $k);
לא הבנתי עשית את זה בצורת פלט אני צריך את זה לתוך משתנה
ועל הדרך תוכל לכתוב לי כל מספר במה הוא מתחלף -
@MGM-IVR @לעזור-לכולם @שמואל-ש
אבל איך אני מגדיר אותם בקבלת נתונים? -
$array_number = [3333, 333, 33, 3, 2222, 222, 22, 2, 6666, 666, 66, 6, 55555, 5555, 555, 55, 5, 44444, 4444, 444, 44, 4, 99999, 9999, 999, 99, 9, 8888, 888, 88, 8, 7777, 777, 77, 7, 00000, 0000, 000, 00, 0, 11111, 1111, 111, 11, 1, '*']; $array_abc = [3, "ג", "ב", "א", 2, "ו", "ה", "ד", 6, "ט", "ח", "ז", 5, "ל", "ך", "כ", "י", 4, "ן", "נ", "ם", "מ", 9, "ף", "פ", "ע", 'ס', 8, "ק", "ץ", 'צ', 7, "ת", "ש", "ר", 0, "@", "-", "+", " ", 1, ",", "!", "?", ".", ""]; $temp = str_replace($array_number, $array_abc, $k);
כעת זה נכנס לתוך משתנה.
נ.ב.
זה לא קוד שאני הכנתי, אבל נראה לי שהוא לא כ"כ תקין.
לדוג' תבדוק את האיבר השני במערך, זה לא נראה תקין.
גם ההחלפה של המספרים בערכים לא נראה תואם.
הקוד שהביא למעלה @לעזור-לכולם נראה טוב -
@מתכנת-בעתיד גם הוא לא עבד
-
@121244 כתב באיך עושים במקלדת טלפונית הקלדה רציפה ללא צורך בסולמית אחרי כל אות (כמו שיש בכמה מודולי API)?:
@מתכנת-בעתיד גם הוא לא עבד
בדקת את הקוד של @לעזור-לכולם ?
-
@מתכנת-בעתיד זה מה שהכנסתי (ללא קריאה לפונקציה ) וזה לא שינה כלום
function digits2abc($text) { $array_number = [3333, 333, 33, 3, 2222, 222, 22, 2, 6666, 666, 66, 6, 55555, 5555, 555, 55, 5, 44444, 4444, 444, 44, 4, 99999, 9999, 999, 99, 9, 8888, 888, 88, 8, 7777, 777, 77, 7, 0, 00, '*']; $array_abc = [3, "ג", "ב", "א", 2, "ו", "ה", "ד", 6, "ט", "ח", "ז", 5, "ל", "ך", "כ", "י", 4, "ן", "נ", "ם", "מ", 9, "ף", "פ", "ע", 'ס', 8, "ק", "ץ", 'צ', 7, "ת", "ש", "ר", " ", 0, ""]; return str_replace($array_number, $array_abc, $text); }
-
@121244
אתה אמור להחליט,
אם אתה כותב את זה בתוך פונקציה אתה חייב שיהיה קריאה לפונקציה,
אם אתה כותב בתוך הקוד ללא פונקציה אתה לא צריך קריאה לפונקציה.
מומלץ לך לעבור על מדריך פונקציות PHP כדי לחדד איך עובד פונקציות.