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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. PHP חיפוש טקסט בתוך קובץ

PHP חיפוש טקסט בתוך קובץ

מתוזמן נעוץ נעול הועבר תכנות
23 פוסטים 8 כותבים 381 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • שואףש מנותק
    שואףש מנותק
    שואף
    כתב ב נערך לאחרונה על ידי
    #1

    אני צריך פונקציה לחיפוש טקסט בתוך קובץ, ואני חושב על שני אפשרויות לעשות את זה.
    או לטעון את כל תוכן הקובץ בכל קריאה עם file_get_contents, ואז לחפש עם strpos אם מוצא מיקום של הטקסט שלי.
    או להשתמש בgrep עם פונקציה של exec.

    האפשרות הראשונה גרועה כי זה יכול להיות קובץ די גדול, והאפשרות השניה אני לא יודע כמה זה טוב לשלב בין פקודות BASH ללשון של PHP.

    לתת קצת רקע, אני עושה קו עם כניסה לפי רשימה לבנה. יש קובץ עם אלפי שורות של מספרים שמאושרים להתקשר, ואני צריך לבדוק כל פעם אם המספר שמתקשר הוא נמצא בתוך הקובץ הזה.
    יש אפשרות שלישית, להכניס את כל המספרים לתוך DB, ואז לעשות SELECT כל פעם לבדוק אם המספר נמצא בטבלא.

    מה האפשרות שאוכלת הכי פחות משאבים לדעתכם? (צריך לקחת בחשבון שיתכן שיתקשרו הרבה מאוד אנשים בו זמנית, וכל פעולה נוספת במהלך השיחה מכבידה עוד קצת על השרתים, לכן לכאורה הDB הוא לא רעיון טוב)

    תודה

    ליצירת קשר: admin@i-call.me

    הידד! גישה למייל גם בלי מחשב ואינטרנט!

    clickoneC תגובה 1 תגובה אחרונה
    0
    • clickoneC מנותק
      clickoneC מנותק
      clickone
      השיב לשואף ב נערך לאחרונה על ידי
      #2

      @שואף הקובץ במבנה ידוע?
      מה עם חיפוש בינארי במערך? (לא בטוח שזה רעיון טוב.... רק שואל)
      אולי שווה לך לעשות API קטן שיחזיק בזיכרון את הרשימה ויעדכן ויחזיר תוצאות ממערך בזיכרון. (לא יודע כמה זה שווה וחכם. אולי כן. במיוחד אם יש לך בעיית ביצועים)

      אין טסט כמו פרודקשן.

      המייל שלי urivpn@gmail.com

      תגובה 1 תגובה אחרונה
      2
      • שואףש מנותק
        שואףש מנותק
        שואף
        כתב ב נערך לאחרונה על ידי
        #3

        בלי מבנה, פשוט קובץ TXT עם מספר בכל שורה
        לא חושב שזה רעיון טוב להחזיק הכל בזיכרון כל הזמן

        ליצירת קשר: admin@i-call.me

        הידד! גישה למייל גם בלי מחשב ואינטרנט!

        תגובה 1 תגובה אחרונה
        1
        • י מנותק
          י מנותק
          יוסף בן שמעון
          כתב ב נערך לאחרונה על ידי
          #4

          @שואף למה לא להחזיק בזיכרון? יש לך איזו מגבלה על הזיכרון?
          בכל מקרה נראה לי שהאפשרות של טבלה מאונדקסת היא המהירה ביותר, כי גם ככה אתה רוצה לגשת לדיסק אז במקום שתטען קובץ ותחפש בכולו תן למסד נתונים למטב את זה עם אינדקס

          תגובה 1 תגובה אחרונה
          4
          • nigunN מנותק
            nigunN מנותק
            nigun
            כתב ב נערך לאחרונה על ידי
            #5

            האם יש בכלל אופציה בPHP לשמור נתון כל הזמן בזיכרון
            ולא ליצור אותו מחדש על כל קריאה?

            מייל: nigun@duck.com

            dovidD תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              ברור שמסד נתונים, מה השאלה בכלל.

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              WWWW תגובה 1 תגובה אחרונה
              3
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                השיב לnigun ב נערך לאחרונה על ידי
                #7

                @nigun לכן הוא כתב API, קרי מערכת קטנה צדדית שלא כתובה בPHP.
                זה לדעתי יכול להיות טוב אבל זה בלגן להתבזר על עוד מערכות.

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                nigunN תגובה 1 תגובה אחרונה
                2
                • WWWW מנותק
                  WWWW מנותק
                  WWW
                  השיב לdovid ב נערך לאחרונה על ידי
                  #8

                  @dovid אמר בPHP חיפוש טקסט בתוך קובץ:

                  ברור שמסד נתונים, מה השאלה בכלל.

                  עם אינדקס?

                  WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                  dovidD תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    השיב לWWW ב נערך לאחרונה על ידי
                    #9

                    @WWW זה כבר שאלת בונוס כי גם בלי זה זה הרבה יותר טוב מקובץ.
                    ברור שצריך אינדקס אבל ייתכן שאפשר מפתח ראשי שזה האינדקס בהא הידיעה.

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    3
                    • שואףש מנותק
                      שואףש מנותק
                      שואף
                      כתב ב נערך לאחרונה על ידי
                      #10

                      תודה לעונים!

                      ליצירת קשר: admin@i-call.me

                      הידד! גישה למייל גם בלי מחשב ואינטרנט!

                      תגובה 1 תגובה אחרונה
                      0
                      • nigunN מנותק
                        nigunN מנותק
                        nigun
                        השיב לdovid ב נערך לאחרונה על ידי
                        #11

                        @dovid אמר בPHP חיפוש טקסט בתוך קובץ:

                        @nigun לכן הוא כתב API, קרי מערכת קטנה צדדית שלא כתובה בPHP.
                        זה לדעתי יכול להיות טוב אבל זה בלגן להתבזר על עוד מערכות.

                        מי כתב?
                        בכל מקרה מעניין אותי באיזה שפות אפשר לשמור את הנתונים בזיכרון ולקבל אותם בAPI
                        אני משער שאפשר עם C ושאר שפות שהם low-level
                        אבל מעניין אותי מה שאר השפות שנותנים אופציה כשאת
                        ולמה כתיבת סקירפט קטן שרץ כל הזמן ברקע אמור ליצור בלגן יותר מאשר קריאה לכל תוכנה אחרת בexec

                        מייל: nigun@duck.com

                        dovidD ח 2 תגובות תגובה אחרונה
                        0
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          השיב לnigun ב נערך לאחרונה על ידי
                          #12

                          @nigun התייחסתי ל@clickone
                          השאלה שלך לא תלויה בשפות ולא בlow-level אלא בפלטפורמת התכנות, האם היא ברמת השרת או ברמת הבקשה. בPHP נקדות ההתחלה שלך היא רמת הבקשה ולכן אין דרך לשתף מידע בין בקשות.
                          סקריפט קטן שרץ ברקע מוסיף לך דאגה ברקע, זו אפליקציה נוספת לגמרי ואתה צריך לדאוג לריצתו ולתקינותו וכו'. exec שמסתמך על קבצים שנמצאים בכל מערכת לא מוסיף לך דאגה כזו.

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          תגובה 1 תגובה אחרונה
                          5
                          • ח מנותק
                            ח מנותק
                            חוקר
                            השיב לnigun ב נערך לאחרונה על ידי
                            #13

                            @nigun אמר בPHP חיפוש טקסט בתוך קובץ:

                            בכל מקרה מעניין אותי באיזה שפות אפשר לשמור את הנתונים בזיכרון ולקבל אותם בAPI

                            אם הבנתי נכון את השאלה, ב NODEJS בכל פעם אני מפעיל את השרת הוא מוריד את כל טבלת אנשי הקשר מהDB ואז הוא לא צריך לבדוק כל פעם מול הDB.
                            מה עוד אתה צריך?
                            מה התכוונת API?

                            תגובה 1 תגובה אחרונה
                            0
                            • nigunN מנותק
                              nigunN מנותק
                              nigun
                              כתב ב נערך לאחרונה על ידי nigun
                              #14

                              @dovid
                              להקים שרת בשביל כל קובץ זה באמת בזבוז
                              אני חשבתי יותר על כיוון של מסד נתונים שמאוחסן בזיכרון
                              (נראה לי שredis עושה משהו כזה)
                              בהתחלה חשבתי שאפשר לעשות מסד נתונים שיקבל את הקריאות דרך CLI
                              אבל אחר הבנתי שהרבה יותר נוח להקים שרת כמו כל שאר המסדי נתונים
                              אבל אני לא חושב שזה יצור בלגן יותר משימוש במסד נתונים רגיל
                              עריכה: זה נראה שיש ספריות מיועדות לכך כבר בPHP ,למשל memcached

                              מייל: nigun@duck.com

                              dovidD תגובה 1 תגובה אחרונה
                              0
                              • dovidD מנותק
                                dovidD מנותק
                                dovid ניהול
                                השיב לnigun ב נערך לאחרונה על ידי
                                #15

                                @nigun לא הבנתי למה המקרה הזה כואב לך מעבר לכל מקרה קלאסי של PHP+נתונים.
                                וגם בשפות אחרות ההמלצה בד"כ זה לא לעבוד עם הזיכרון אלא עם מסד נתונים.
                                (CLI ושרת זה בדיוק אותו דבר, זה סתם הבדל בממשק הגישה).

                                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                nigunN 2 תגובות תגובה אחרונה
                                2
                                • nigunN מנותק
                                  nigunN מנותק
                                  nigun
                                  השיב לdovid ב נערך לאחרונה על ידי nigun
                                  #16

                                  @dovid
                                  פשוט כי במקרה הזה שואף שאל איך הוא יוצר בקשות רבות לכמות קטנה של נתונים?
                                  לכאורה כאן המקום של אחסון בזיכרון ולא במסד נתונים רגיל
                                  כי הוא יתפוס כמות קטנה של זיכרון ,ויחסוך הרבה יותר משאבים בבקשות
                                  אמנם יכול להיות שזה באמת לא בעיה, והוא סתם חשש שיהיה כאן הרבה בקשות
                                  אבל באופן עקרוני במקרה שיש באמת הרבה בקשות, נראה שזה הפתרון הכי טוב.

                                  ההבדל בין CLI לשרת זה האם הבקשה עוברת מעל TCP, ואז השרת סך הכל מדפיס את המשתנה שנוצר בהפעלה
                                  או שהבקשה מתקבלת בהרצה חדשה של האפליקציה ואז צריך לחפש את הכתובת של המשתנה המבוקש
                                  (או שיש דרך יותר חכמה לעשות את זה)
                                  אבל בכל מקרה זה כנראה סתם מסובך, ולכן redis וכדו' מקבלים את הבקשות דרך TCP

                                  מייל: nigun@duck.com

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • nigunN מנותק
                                    nigunN מנותק
                                    nigun
                                    השיב לdovid ב נערך לאחרונה על ידי
                                    #17

                                    @dovid
                                    אגב hugo (פלטפורמה לבניית אתרים) בברירת מחדל שומר את כל התוכן של האתר בזיכרון.
                                    אני משער שהסיבה לכך היא שרוב האתרים לא שוקלים כ"כ הרבה (אתר ריק לוקח 100 מגה, אני לא יודע כמה אתר גדול לוקח)
                                    והם כנראה רוצים שתוכל להקים אתר עם מאות אלפי כניסות ליום, והדבר היחיד שתצטרך לדאוג לו זה רוחב פס.
                                    אמנם הם נותנים גם אפשרות לשמור את זה בדיסק,
                                    אבל מהדיונים בפורום שלהם זה נשמע שזה בשביל אתרים ענקיים עם מאות אלפי עמודים,
                                    ושאתר רגיל ישמור את הקבצים הגדולים (וידיאו,שמע,תמונות) במקום אחר,
                                    (או בשביל מי שרוצה לקבל קבצים סטטיים ולהעלות אותם לS3 וכדו')

                                    מייל: nigun@duck.com

                                    תגובה 1 תגובה אחרונה
                                    0
                                    • S מנותק
                                      S מנותק
                                      Shmuel754
                                      כתב ב נערך לאחרונה על ידי
                                      #18

                                      ומה לגבי טעינת הקובץ ל-RAMDRIVE?

                                      nigunN תגובה 1 תגובה אחרונה
                                      0
                                      • nigunN מנותק
                                        nigunN מנותק
                                        nigun
                                        השיב לShmuel754 ב נערך לאחרונה על ידי
                                        #19

                                        @Shmuel754
                                        לכאורה אפשר
                                        אבל מה הרווח חוץ מזה שלא צריך להפעיל אפליקציה נפרדת בשביל זה?

                                        מייל: nigun@duck.com

                                        S תגובה 1 תגובה אחרונה
                                        0
                                        • S מנותק
                                          S מנותק
                                          Shmuel754
                                          השיב לnigun ב נערך לאחרונה על ידי
                                          #20

                                          @nigun אמור להיות יותר מהיר קריאה מזיכרון מאשר לטחון דיסק

                                          nigunN תגובה 1 תגובה אחרונה
                                          0

                                          • 1
                                          • 2
                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

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