בקשת עזרה לקוד מנוע חיפוש = לחיפוש תכנים ושלוחות במערכת בהקלדת טקסט על מקשי הטלפון
-
בס"ד
שבוע טוב ומבורך !!!
אני פונה כאן לעזרת הציבור .
אני מעוניין בשלוחת מנוע חיפוש עבור הקו שלי .
אני אסביר , במערכת שלי מגוון רחב של שלוחות ,
אני מעוניין בשלוחה שבה המאזין יוכל להקליד טקסט מסויים ובמידה וקיימים תוצאות דומות ישמע את התוצאות ויוכל לבחור תוצאה ולעבור לשלוחה , מהלך זה יקל באפן משמעותי את השימוש במערכת שלי .
בניתי את החלק הראשון של הקוד והנה הוא לפניכם :<?php // המשתנה שמכיל את המספר שמתקבל מהמאזין $robot=$_GET["hipus"]; // שיקיש את הטקסט בספרות כאשר בין אות לאות יקיש כוכבית if (!$_GET["hipus"]){ print "read=t-אנא הקלידו על מקשי הטלפון את הטקסט לחיפוש כאשר בין אות לאות הקישו כוכבית בסיום ההקלדה הקישו סולמית=hipus,no,,,60,NO"; exit; } // פונקציית המרת המספר לאותיות function digits2abc($robot) { $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, $robot); } $bentziyon = digits2abc($robot); // מכניס את ההמרה למשתנה // תפריט שמיעה ואישור כדי לעבור לפעולת החיפוש if (!$_GET["veav"]){ print "read=t-הטקסט שהוקלד הוא , $bentziyon , לאישור ומעבר לביצוע החיפוש הקישו .n-1 .t-להקלדה מחדש הקישו .n-2 .t-ליציאה הקישו .n-3=veav,no,1,1,7,Digits,yes,yes,,1.2.3"; exit; } /* כאן נדרש לחפש אם מה שהקליד המאזין שכאמור נכנס למשתנה $bentziyon האם הוא שווה למפתח שקיים במערך שיוכי במידה וקיים מפתח במערך הערך של המפתח ייכנס למשתנה חדש שאיתו אני אשתמש בהמשך הקוד שימו לב ! עדיף שהחיפוש לא יהיה בפרפקציונסטיות דהיינו שהטקסט שיוקלד על ידי המשתמש יהיה חייב להיות זהה למפתח כלומר שגם אם אם המאזין הקליד טקסט והטקסט דומה לטקסט מסויים לדוגמא אם הקליד שלמה והמפתח הוא שלמה כהן שיוצגו התומאות במקרה הזה שתוצג התוצאה שלמה כהן אשמח לתשובתכם */ ?>
אולם הבעיה היא עכשיו היא כיצד להשוות את הנתונים ? כיצד אני יכול לבצע בדיקה , אם מה שהמשתמש הקליד זהה לערך קיים ? ובמידה וקיים להשמיע את התוצאות ולעבור לשלוחה ?
אני תיכננתי לעשות זאת על פי קובץ קוד חיצוני שבו יהיה מערך שיוכי שיכיל את כל האפשרויות .
לדוגמא מפתח בשם "עידכונים" וערך בשם "go_to_folder=1"
שזה אומר אם הטקסט שהקליד המאזין שווה או דומה ל "עידכונים" יעבור למה שכתוב בערך של המפתח go_to_folder=1 דהיינו שיעבור לשלוחה 1 .
אשמח מאוד לתשובתכם -
-
-
@קול-הלב כתב בבקשת עזרה לקוד מנוע חיפוש = לחיפוש תכנים ושלוחות במערכת בהקלדת טקסט על מקשי הטלפון:
בס"ד
שבוע טוב ומבורך !!!
אני פונה כאן לעזרת הציבור .
אני מעוניין בשלוחת מנוע חיפוש עבור הקו שלי .
אני אסביר , במערכת שלי מגוון רחב של שלוחות ,
אני מעוניין בשלוחה שבה המאזין יוכל להקליד טקסט מסויים ובמידה וקיימים תוצאות דומות ישמע את התוצאות ויוכל לבחור תוצאה ולעבור לשלוחה , מהלך זה יקל באפן משמעותי את השימוש במערכת שלי .
בניתי את החלק הראשון של הקוד והנה הוא לפניכם :<?php // המשתנה שמכיל את המספר שמתקבל מהמאזין $robot=$_GET["hipus"]; // שיקיש את הטקסט בספרות כאשר בין אות לאות יקיש כוכבית if (!$_GET["hipus"]){ print "read=t-אנא הקלידו על מקשי הטלפון את הטקסט לחיפוש כאשר בין אות לאות הקישו כוכבית בסיום ההקלדה הקישו סולמית=hipus,no,,,60,NO"; exit; } // פונקציית המרת המספר לאותיות function digits2abc($robot) { $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, $robot); } $bentziyon = digits2abc($robot); // מכניס את ההמרה למשתנה // תפריט שמיעה ואישור כדי לעבור לפעולת החיפוש if (!$_GET["veav"]){ print "read=t-הטקסט שהוקלד הוא , $bentziyon , לאישור ומעבר לביצוע החיפוש הקישו .n-1 .t-להקלדה מחדש הקישו .n-2 .t-ליציאה הקישו .n-3=veav,no,1,1,7,Digits,yes,yes,,1.2.3"; exit; } /* כאן נדרש לחפש אם מה שהקליד המאזין שכאמור נכנס למשתנה $bentziyon האם הוא שווה למפתח שקיים במערך שיוכי במידה וקיים מפתח במערך הערך של המפתח ייכנס למשתנה חדש שאיתו אני אשתמש בהמשך הקוד שימו לב ! עדיף שהחיפוש לא יהיה בפרפקציונסטיות דהיינו שהטקסט שיוקלד על ידי המשתמש יהיה חייב להיות זהה למפתח כלומר שגם אם אם המאזין הקליד טקסט והטקסט דומה לטקסט מסויים לדוגמא אם הקליד שלמה והמפתח הוא שלמה כהן שיוצגו התומאות במקרה הזה שתוצג התוצאה שלמה כהן אשמח לתשובתכם */ ?>
אולם הבעיה היא עכשיו היא כיצד להשוות את הנתונים ? כיצד אני יכול לבצע בדיקה , אם מה שהמשתמש הקליד זהה לערך קיים ? ובמידה וקיים להשמיע את התוצאות ולעבור לשלוחה ?
אני תיכננתי לעשות זאת על פי קובץ קוד חיצוני שבו יהיה מערך שיוכי שיכיל את כל האפשרויות .
לדוגמא מפתח בשם "עידכונים" וערך בשם "go_to_folder=1"
שזה אומר אם הטקסט שהקליד המאזין שווה או דומה ל "עידכונים" יעבור למה שכתוב בערך של המפתח go_to_folder=1 דהיינו שיעבור לשלוחה 1 .
אשמח מאוד לתשובתכם- סתם הערה אם מדובר בזיהוי מדויק אז פשוט מבקשים את הטקסט שהוקלד בתור המפתח ואז בדיקה אם לא שווה לאפס אבל אז צריך שיהיה מערך מסודר
2 לגבי החיפוש וכולי אז יש לי רעיון מסוים ואין לי זמן לכתוב עכשיו קוד בשביל זה אבל תחילה עלי לדעת האם יש לך הכרח מסוים לבנות את הקוד בצורה הזאת או שכל דרך אפשרית והעיקר התוצאה?
- סתם הערה אם מדובר בזיהוי מדויק אז פשוט מבקשים את הטקסט שהוקלד בתור המפתח ואז בדיקה אם לא שווה לאפס אבל אז צריך שיהיה מערך מסודר
-
@הלי כתב בבקשת עזרה לקוד מנוע חיפוש = לחיפוש תכנים ושלוחות במערכת בהקלדת טקסט על מקשי הטלפון:
- סתם הערה אם מדובר בזיהוי מדויק אז פשוט מבקשים את הטקסט שהוקלד בתור המפתח ואז בדיקה אם לא שווה לאפס אבל אז צריך שיהיה מערך מסודר
2 לגבי החיפוש וכולי אז יש לי רעיון מסוים ואין לי זמן לכתוב עכשיו קוד בשביל זה אבל תחילה עלי לדעת האם יש לך הכרח מסוים לבנות את הקוד בצורה הזאת או שכל דרך אפשרית והעיקר התוצאה?
אני מתכוין לחיפוש גם לא מדוייק דהיינו שיציג את כל התוצאות הדומות לטקסט שהוקלד , כפי שאמרת לא משנה הדרך העיקר התוצאה אולם כמה שפחות מסובך עדיף אבל בכל זאת העיקר בשבילי זו התוצאה
- סתם הערה אם מדובר בזיהוי מדויק אז פשוט מבקשים את הטקסט שהוקלד בתור המפתח ואז בדיקה אם לא שווה לאפס אבל אז צריך שיהיה מערך מסודר
-
@קול-הלב אוקי אז הרעיון הוא להשתמש בקובץ טקסט ששם יהיו כל הנתונים (ניתן אפילו בתוך המערכת עצמה וכך באמצעות הוספת ערך ID להוסיף נתונים וכמו כן אפשר להוסיף בקוד עצמו) הקובץ יכול להיות בכל סיומת שהיא ואפשר לעדכן בו נתונים לפי הצורך ואז לקבל את הנתונים הקיימים בתוך הקובץ למשתנה ועם הפונקציה explode להפוך למערך שכל איבר זה שורה בקובץ ואז לעבור אחד אחד ולבדוק באמצעות הפונקציה strpos האם קיים הטקסט שהקיש המשתמש ואם כן לשמור בצד
עד כאן בכללי אם תרצה הסבר יותר אולי יהיה לי זמן בהמשך לכתוב לזה קוד ואם יש לך שאלות אל תהסס לשאול
אגב זה עדיין לא מכסה את החלק של הבחירה של המאזין שצריך להוסיף בהמשך בחירה ומעבר לזה בעקרון הרעיון פשוט אבל אם יהיה שינויים בקובץ עצמו באמצע זה יצור בעיה אבל יתכן שגם לזה יש פתרון
בכל אופן אשמח לשמוע את דעתך וכן לשמוע אם זה מכסה על מה שרצית -
@הלי כתב בבקשת עזרה לקוד מנוע חיפוש = לחיפוש תכנים ושלוחות במערכת בהקלדת טקסט על מקשי הטלפון:
@קול-הלב אוקי אז הרעיון הוא להשתמש בקובץ טקסט ששם יהיו כל הנתונים (ניתן אפילו בתוך המערכת עצמה וכך באמצעות הוספת ערך ID להוסיף נתונים וכמו כן אפשר להוסיף בקוד עצמו) הקובץ יכול להיות בכל סיומת שהיא ואפשר לעדכן בו נתונים לפי הצורך ואז לקבל את הנתונים הקיימים בתוך הקובץ למשתנה ועם הפונקציה explode להפוך למערך שכל איבר זה שורה בקובץ ואז לעבור אחד אחד ולבדוק באמצעות הפונקציה strpos האם קיים הטקסט שהקיש המשתמש ואם כן לשמור בצד
עד כאן בכללי אם תרצה הסבר יותר אולי יהיה לי זמן בהמשך לכתוב לזה קוד ואם יש לך שאלות אל תהסס לשאול
אגב זה עדיין לא מכסה את החלק של הבחירה של המאזין שצריך להוסיף בהמשך בחירה ומעבר לזה בעקרון הרעיון פשוט אבל אם יהיה שינויים בקובץ עצמו באמצע זה יצור בעיה אבל יתכן שגם לזה יש פתרון
בכל אופן אשמח לשמוע את דעתך וכן לשמוע אם זה מכסה על מה שרציתעכשיו אני רואה את מה שכתבת , יפה מאוד ! בעיקרון יש לי רעיון לפעולה שמציגה את התוצאות , אז כרגע אני יבדוק את הרעיון שלך יצליח להשתלב אם המשך הקוד של הצגת התוצאות , אשמח שתיהיה כאן לעזר לשאלות נוספות בעניין
-
@הלי
אוקיי
כתבתי איזה קוד על בסיס ביטויים רגולריים , אני מעלה את הקוד , אשמח אם תוכל לעבור עליו , הבעיה כרגע היא באפשרות של שמיעת התוצאות ובחירת תוצאה למעבר , בעיקרון כל הקוד כבר בנוי ,
חילקתי את הקוד ל 3 קבצים ,
1 numero.php
2 jeno.php
3 optzyot.txtבקוד הראשון מקליד את הטקסט לחיפוש ומאשר את הטקסט באישור הטקסט מועבר לקוד 2 בקובץ הזה מתבצע תהליך החיפוש הקובץ השלישי הוא הקובץ של האופציות , אין לי זמן להסביר כיצד זה פועל , אשמח אם המשתמשים יוכלו לעבור על זה ולתת פתרונות , הרווח הוא של כולנו , זה פתרון באמת גדול .
מצרף גם את הקודים לקריאה .
1
<?php // המשתנה שמכיל את המספר שמתקבל מהמאזין $robot=$_GET["hipus"]; // שיקיש את הטקסט בספרות כאשר בין אות לאות יקיש כוכבית if (!$_GET["hipus"]){ print "read=t-אנא הקלידו על מקשי הטלפון את הטקסט לחיפוש כאשר בין אות לאות הקישו כוכבית בסיום ההקלדה הקישו סולמית=hipus,no,,,60,NO"; exit; } // פונקציית המרת המספר לאותיות function digits2abc($robot) { $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, $robot); } $bentziyon = digits2abc($robot); // מכניס את ההמרה למשתנה // תפריט שמיעה ואישור כדי לעבור לפעולת החיפוש if (!$_GET["veav"]){ print "read=t-הטקסט שהוקלד הוא , $bentziyon , לאישור ומעבר לביצוע החיפוש הקישו 1 , להקלדת הטקסט מחדש הקישו 2 , ליציאה הקישו 3=veav,no,1,1,7,Digits,yes,yes,,1.2.3"; exit; } switch($_GET["veav"]) { case 1: include "jeno.php"; break; case 1: break; case 1: break; } ?>
בהקלדה מחדש וביציאה עדין לא הוספתי משהו , בעיקרון אני יגדיר מעבר לשלוחה אחרת , כשבחדש יעבור שוב לשלוחה וביציאה יחזור לראשי .
2
<?php # הצגת הקובץ $filename = "optzyot.txt"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename));// קורא כמה שצריך fclose($handle); $txtexploded = explode("|" , $contents); # בסיעתא דשמיא לאחר נסיונות רבים הקב"ה עזר לי ומצאתי את האפשרות לחפש $output = preg_grep("/$bentziyon/",$txtexploded); /* פונקציות לפעולות */ # המרת התוצאות לטקסט function ELamranos(){ global $output; global $txt_imploded; $txt_imploded = implode(" <br/> ", $output); return $txt_imploded; } # שינוי האות בשורת האופציה לפקודת המעבר function ELllinuyos(){ global $regex; global $replace; global $vsrt; global $txt_imploded; $regex = "/[A-B]/"; $replace = "&go_to_folder="; $vsrt = preg_replace($regex,$replace,$txt_imploded); return $vsrt; } # מעבר לשלוחה לאחר כל התהליך function ELmavros(){ global $vsrt; global $assetFinal; if (!$_GET["mavar"]){ return "read=t-למעבר לתוצאה הקישו 1 , מנוע החיפוש פותח על ידי הקול החכם=mavar,no,1,1,7,Digits,yes,yes,,1,"; } else{ $assetFinal = "id_list_message=t- הנכם מועברים ל ,$vsrt"; } } # שמיעת מספר התוצאות $cinento = count($output); # משתנים לפעולת ההשמעה $vardm1 = 1; // השלוחה אליה יעבור באם לא נמצאו תוצאות $vardm2 = "&go_to_folder"; // פקודת המעבר # פעולת ההשמעה if($cinento==NULL){ print "id_list_message=t- לא נמצאו תוצאות , הנכם מועברים לחיפוש חדש ,$vardm2=$vardm1"; } elseif($cinento==1){ print "id_list_message=t- נמצאה תוצאה אחת"; } else{ $i = 1; while ($i <= $cinento){ $akdf = $output[rand(1,count($output))-1]; $txt_imploded = implode(" <br/> ", $output); $nbch = " למעבר לתוצאה , $akdf <br /> הקישו $i , "; $cxjaj = " נמצאו , $cinento , תוצאות , <br /> $nbch "; $i++; } print $cxjaj . $cxjaj; } // $output = preg_grep('/^[9-0]+/', $foods); # כאן צריך לתת לו לשמוע את התוצאות וכן לבחור בתוצאה שרוצה לעבור אליה /* # קריאות לפונקציות print "<br/>"; print ELamranos(); // פונקציית המרת התוצאות ממערך לטקסט print "<br/>"; print ELllinuyos(); // פונקציית שינוי הטקסט לשורה עם מעבר print "<br/>"; print $txt_imploded; // מכיל את התוצאות בטקסט print "<br/>"; print ELmavros(); // פונקציית המעבר print "<br/>"; print $assetFinal; // מכיל את כל הטקסט עם המעבר הסופי */ ?>
הקובץ השלישי הוא רק דוגמא
בעצם רושמים את האופציות בין סימן | כאשר בכל אופציה כותבים תחילה את הטקסט ואז אות A באנגלית ואת השלוחה למעבר , מה שקורה בקוד השני ,יש שם פונקציה שמחליפה את האות A בכל הטקסטים לסימן & ואז את פקודת המעבר go_to_folder וסימן ה = .
ואז יוצא טקסט לדוגמא :אריאל &go_to_folder=1/1
עד כאן ממש בקצרה אשמח לתשובתכם
-
@תן-חיוך-1
בשבילך אני מתקן , רק בשביל שתוכל לחייך אל העולם ! -
פוסט זה נמחק!