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

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

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

בקבלת תו ממחרוזת ב-PHP התו חוזר בג'יבריש!

מתוזמן נעוץ נעול הועבר תכנות
29 פוסטים 7 כותבים 441 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ל מנותק
    ל מנותק
    לעזור לכולם
    השיב לשמואל ש. ב נערך לאחרונה על ידי לעזור לכולם
    #20

    תבדוק אם זה עובד לך

    <?php
    $str="אבגדה";
    echo mb_substr($srt,0,1);
    ?>
    
    
    שמואל ש.ש תגובה 1 תגובה אחרונה
    1
    • שמואל ש.ש מנותק
      שמואל ש.ש מנותק
      שמואל ש.
      השיב ללעזור לכולם ב נערך לאחרונה על ידי
      #21

      @לעזור-לכולם לא, הוא לא מדפיס כלום!

      ל תגובה 1 תגובה אחרונה
      0
      • ל מנותק
        ל מנותק
        לעזור לכולם
        השיב לשמואל ש. ב נערך לאחרונה על ידי לעזור לכולם
        #22

        @שמואל-ש סליחה אני מצטער היה טעות בקוד לעיל [בשם המשתנה...]
        זה מתוקן

        <?php
        $str="אבגדה";
        echo mb_substr($str,0,1);
        ?>
        
        
        
        שמואל ש.ש תגובה 1 תגובה אחרונה
        1
        • שמואל ש.ש מנותק
          שמואל ש.ש מנותק
          שמואל ש.
          השיב ללעזור לכולם ב נערך לאחרונה על ידי
          #23

          @לעזור-לכולם לא השתנה שום דבר

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

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

            תגובה 1 תגובה אחרונה
            0
            • chagoldC מנותק
              chagoldC מנותק
              chagold
              השיב לשמואל ש. ב נערך לאחרונה על ידי
              #25

              @שמואל-ש כתב בבקבלת תו ממחרוזת ב-PHP התו חוזר בג'יבריש!:

              @לעזור-לכולם כתב בבקבלת תו ממחרוזת ב-PHP התו חוזר בג'יבריש!:

              [VSC או על השרת]

              בשרת

              מה זה VSC?

              העורך קוד

              השתמשת בזה?

              שמואל ש.ש תגובה 1 תגובה אחרונה
              1
              • שמואל ש.ש מנותק
                שמואל ש.ש מנותק
                שמואל ש.
                השיב לchagold ב נערך לאחרונה על ידי
                #26

                @chagold כתב בבקבלת תו ממחרוזת ב-PHP התו חוזר בג'יבריש!:

                השתמשת בזה?

                עשיתי כך

                <?php
                $str="אבגדהו";
                echo utf8_encode($str[0]);
                ?>
                

                ולא מודפס לי כלום!

                תגובה 1 תגובה אחרונה
                0
                • yossizY מנותק
                  yossizY מנותק
                  yossiz
                  כתב ב נערך לאחרונה על ידי yossiz
                  #27

                  @שמואל-ש
                  איך שאני מבין יש שתי אפשרויות מה גורם לבעיה,
                  אם קוד המקור שלך מקודד בקידוד יוניקוד אז הגורם לבעיה היא ככה:
                  קוד PHP רגיל מתייחס למחרוזת עם ההנחה השגויה שכל תו הוא באורך של בייט אחד, הנחה זו שגויה לגבי טקסט עברי בייצוג יוניקוד כמו קידוד UTF-8 וכדומה, לכן קוד רגיל של PHP נותן תוצאה לא נכונה, הוא מוציא את הבייט השני שזה לא התו השני
                  אם זו הבעיה אז הפתרון של @לעזור-לכולם היא הנכונה,
                  הדגמה:
                  https://onlinephp.io/c/6258c
                  השימוש בפוקנציית mb_substr יודעת לפצל את הטקסט לתווים גם כאשר תו יחיד הוא יותר מבייט אחד

                  אם קוד המקור שלך מקודד בצורה שכל תו הוא בייט אחד למשל ANSI, אז קוד בסיסי של PHP אמור לעבוד אבל יכול להיות שזה לא מוצג נכון בפלט כי מי שמציג את זה לא יודע להציג את הטקסט בקידוד ANSI
                  ואם ככה אז צריך להשתמש גם בפתרון של @Shmuel754 לשמור בקידוד יוניקוד UTF8 או לחילופין לגרום שמי שמציג את הפלט יבין שמדובר בקידוד ANSI

                  📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                  תגובה 1 תגובה אחרונה
                  6
                  • איש נחמדא מנותק
                    איש נחמדא מנותק
                    איש נחמד
                    השיב לשמואל ש. ב נערך לאחרונה על ידי
                    #28

                    @שמואל-ש תוכל לבדוק האם ההרחבה של mb עבור PHP מותקנת, כך:

                    var_dump( extension_loaded('mbstring') );
                    

                    להיות איש נחמד זה מחייב...

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

                      @איש-נחמד ב"ה זה כבר עובד לי ע"י השיטה mb_substr שהביא @לעזור-לכולם רק כנראה האתר ששם עשיתי את הניסויים לא הכיר את המחלקה הזאת...
                      @chagold @yossiz תודה רבה גם לכם על שעזרתם לי כ"כ!!!

                      תגובה 1 תגובה אחרונה
                      4
                      • שמואל ש.ש שמואל ש. התייחס לנושא זה ב

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

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

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