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

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

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

גמטריה ב php

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 2 כותבים 314 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • I
    I
    ivrtikshoret
    כתב ב נערך לאחרונה על ידי
    #1

    שלום וברכה
    אני מחפש פונקצייה להמרת מספרים לאותיות וכן הפוך בשפת php
    בניתי כבר משהו אבל משום מה זה לא עובד לי אשמח לעזרתכם:

    function convertWord($word) {
    if (strlen($word)== 1){
    $word = convertLetter($word);
    }
    if (strlen($word)== 2){
    $a = (intdiv($word, 10))*10;
    $b = $word-$a;
    $word = convertLetter($a).convertLetter($b);
    }
    if (strlen($word)== 3){
    $a = (intdiv($word, 100))*100;
    $b = (intdiv(($word-$a), 10))*10;
    $c = $word-$a-$b;
    $word = convertLetter($a).convertLetter($b).convertLetter($c);
    }
    function convertLetter($letter) {
        $values = [
    1 => 'א', 2 => 'ב',
    3 => 'ג', 4 => 'ד', 5 => 'ה', 6 => 'ו',  7 => 'ז',  8 => 'ח',  9 => 'ט',  10 => 'י', 20 => 'כ',
     30 => 'ל', 40 => 'מ', 50 => 'נ', 60 => 'ס',  70 => 'ע',  80 => 'פ',  90 => 'צ',  100 => 'ק', 200 => 'ר',  300 => 'ש', 400 => 'ת',
        ];
    
        return $values[$letter];
    };
    }
    echo convertWord(2);
    
    תגובה 1 תגובה אחרונה
    0
    • ח
      ח
      חוקר
      כתב ב נערך לאחרונה על ידי
      #2

      יש כאן מחלקה שמישהו כתב
      לא אני
      הוא כתב זאת עם שימוש באותיות בעברית..
      בכל מקרה דוגמא לשימוש הוא

      $num = גימטריא::אותיות_למספר('קידוש השם')
      
      
      class גימטריא
      {
          /*
          @ פונקציה סטטית ההופכת אותיות למספר הגימטריא
      
           @ הפרמטר הראשון והחובה הוא כמובן המחרוזת אותה רוצים להמיר
            @ הפרמטר השני אופציונלי ומאפשר להגדיר מפריד שכל התווים עד אליו יחושבו כאלפים
      
          */
          public static function אותיות_למספר ( $str , $alafim = FALSE )
          {
              $gimatriya = 0 ;
      
              if ( ! ($alafim === FALSE) )
              {
                  $str = explode ( $alafim , $str );
      
                  $gimatriya += self::גימטריא_למספר ( array_shift( $str ) ) * 1000 ;
      
                  foreach ( $str as $txt )
                  {
                      $gimatriya += self::גימטריא_למספר ( $txt )  ;
                  }
              }else{
                  $gimatriya += self::גימטריא_למספר ( $str )  ;
              }
      
              return $gimatriya ;
          }
      
      
          /*
          @ פונקציה סטטית ההופכת מספר לגימטריא
      
           @ הפרמטר הראשון והחובה הוא כמובן המספר אותו רוצים להמיר
      
           @ השני קובע כברירת מחדל שלאותיות לא יתווספו גרשיים
             → TRUE יגדיר שכן יהיה גרשיים
      
           @ השלישי קובע כברירת מחדל שהאלפים יחושבו בנפרד ולא יתקבל מחרוזת של תתתתתתתתת…
               כמו כן הוא קובע שהמילה `אלפים` תתווסף למחרוזת
            ←ניתן להגדיר בו 0 כדי לבטל כליל או אחד כדי לקבל את התוצאה כ ה' תשע"ח למשל בלי המילה אלפים
      
           @ הרביעי יקבע האם להציב אותיות מנצפכ בסוף מילה כברירת מחדל או םןץףך אם נגדיר true
          */
      
          public static function מספר_לאותיות ( $num , $gershayim = FALSE , $alafim = 2 , $םןץףך = FALSE )
          {
      
      
              $gimatriya = self::מספר_לגימטריא ( $num , $alafim ) ;
      
              if ($gershayim)
              {
                  $gimatriya = explode ( ' ' , $gimatriya ) ;
      
                  $i = 0 ;
                  foreach ( $gimatriya as $str )
                  {
                      if( $str == 'אלפים' ) {$i++; continue ; }
      
                      if( mb_strlen( $str , 'UTF-8' ) == 1 )
                      {
                          $gimatriya [$i] .= "'" ;
                      }else{
                          $gimatriya [$i] = (mb_substr ( $str , 0 , mb_strlen( $str , 'UTF-8' ) - 1 ) . '"' . mb_substr ( $str , mb_strlen( $str , 'UTF-8' )-1 ,1 ))  ;
                      }
                      $i++;
                  }
      
                  $gimatriya = implode ( ' ' , $gimatriya ) ;
              }
      
              if ( $םןץףך )
              {
                  $replace = array ( 'מ' => 'ם' ,'נ' => 'ן' ,'צ' => 'ץ' ,'פ' => 'ף' ,'כ' => 'ך' );
      
                  $str = $gimatriya ;
      
                  $last_ot = mb_substr ( $str , mb_strlen( $str , 'UTF-8' )-1 ,1 ) ;
      
                  $gimatriya = mb_substr ( $str , 0 , mb_strlen( $str , 'UTF-8' ) - 1 ) ;
      
                  $gimatriya .= in_array ( $last_ot , array ( 'מ', 'נ', 'צ', 'פ', 'כ' ) ) ? $replace[$last_ot] : $last_ot ;
              }
      
              return $gimatriya ;
          }
      
          /*
          פונקציה סטטית המשווה גימטריא של שתי מחרוזות ומחזירה אמת בהתאמה ושקר באי התאמה
           @ הפרמטר הראשון והשני הם המחרוזות להשואה
            @ הפרמטר השלישי והרביעי יגדירו מפריד אלפים עבור המחרוזות שבפרמטר הראשון והשני
          */
          public static function גימטריא_שווה  ( $str1 , $str2 , $alafim1 =FALSE , $alafim2 =FALSE )
          {
      
              return self::אותיות_למספר ( $str1 , $alafim1 )  == self::אותיות_למספר ( $str2 , $alafim2 ) ? TRUE : FALSE ;
          }
      
      
      //מערך אם גימטריא של כל האותיות
          protected static $OTIYOT = array (
              'א' => 1 ,
              'ב' => 2 ,
              'ג' => 3 ,
              'ד' => 4 ,
              'ה' => 5 ,
              'ו' => 6 ,
              'ז' => 7 ,
              'ח' => 8 ,
              'ט' => 9 ,
              'י' => 10 ,
              'כ' => 20 ,
              'ך' => 20,
              'ל' => 30 ,
              'מ' => 40 ,
              'ם' => 40 ,
              'נ' => 50 ,
              'ן' => 50 ,
              'ס' => 60 ,
              'ע' => 70 ,
              'פ' => 80 ,
              'ף' => 80 ,
              'צ' => 90 ,
              'ץ' => 90 ,
              'ק' => 100 ,
              'ר' => 200 ,
              'ש' => 300 ,
              'ת' => 400
          );
      
      
      //פונקציה פנימית המבצעת את החישוב ממספר לאותיות
          protected static function מספר_לגימטריא ( $num , $alafim = 2 )
          {
              $num = (int)$num ;
      
              $gimatriya = '' ;
      
              switch( $num )
              {
                  case 0:
                      break;
      
                  case ( $num >= 1000 ) :
      
                      if ( $alafim )
                      {
                          $rest = $num % 1000 ;
                          $gimatriya .= self::מספר_לגימטריא ( ( $num -$rest ) / 1000 ) ;
                          $gimatriya .= $alafim==2? ' אלפים ' : ' ' ;
                      }else{
                          $rest = $num % 400 ;
                          foreach( range( 1, ($num -$rest)  / 400 ) as $i ) { $gimatriya .= 'ת' ; }
                      }
      
                      $gimatriya .= self::מספר_לגימטריא ( $rest , $alafim ) ;
                      break;
      
                  case ( $num >= 400 ):
                      $rest = $num % 400 ;
                      foreach( range( 1, ($num -$rest)  / 400 ) as $i ){ $gimatriya .= 'ת' ; }
                      $gimatriya .= self::מספר_לגימטריא ( $rest , $alafim ) ;
                      break;
      
                  case ( $num >= 100 ):
                      $rest = $num % 100 ;
                      $gimatriya .= array_search ( $num - $rest , self::$OTIYOT );
                      $gimatriya .= self::מספר_לגימטריא ( $rest , $alafim ) ;
                      break;
      
                  case 15:
                      $gimatriya .=  'טו' ;
                      break;
      
                  case 16:
                      $gimatriya .= 'טז' ;
                      break;
      
                  case ( $num >= 10 ):
                      $rest = $num % 10 ;
                      $gimatriya .= array_search ( $num - $rest , self::$OTIYOT );
                      $gimatriya .= self::מספר_לגימטריא ( $rest , $alafim ) ;
                      break;
      
                  case ( $num < 0 ):
                      break;
      
                  default:
                      $gimatriya .= array_search ( $num , self::$OTIYOT );
      
              }
      
              return $gimatriya ;
          }
      
      //פונקציה פנימית המבצעת את החישוב מאותיות למספר
          protected static function גימטריא_למספר ( $str )
          {
              $str = preg_replace( "/[^א-ת]/" , '' , $str );
      
              $gimatriya = 0 ;
      
              for( $i = 0 ; $i < mb_strlen( $str , 'UTF-8' ) ; $i++ )
              {
                  $gimatriya += self::$OTIYOT [mb_substr ( $str , $i , 1)] ;
              }
              return $gimatriya ;
          }
      
      }//end of class גימטריא
      
      I תגובה 1 תגובה אחרונה
      4
      • ח חוקר

        יש כאן מחלקה שמישהו כתב
        לא אני
        הוא כתב זאת עם שימוש באותיות בעברית..
        בכל מקרה דוגמא לשימוש הוא

        $num = גימטריא::אותיות_למספר('קידוש השם')
        
        
        class גימטריא
        {
            /*
            @ פונקציה סטטית ההופכת אותיות למספר הגימטריא
        
             @ הפרמטר הראשון והחובה הוא כמובן המחרוזת אותה רוצים להמיר
              @ הפרמטר השני אופציונלי ומאפשר להגדיר מפריד שכל התווים עד אליו יחושבו כאלפים
        
            */
            public static function אותיות_למספר ( $str , $alafim = FALSE )
            {
                $gimatriya = 0 ;
        
                if ( ! ($alafim === FALSE) )
                {
                    $str = explode ( $alafim , $str );
        
                    $gimatriya += self::גימטריא_למספר ( array_shift( $str ) ) * 1000 ;
        
                    foreach ( $str as $txt )
                    {
                        $gimatriya += self::גימטריא_למספר ( $txt )  ;
                    }
                }else{
                    $gimatriya += self::גימטריא_למספר ( $str )  ;
                }
        
                return $gimatriya ;
            }
        
        
            /*
            @ פונקציה סטטית ההופכת מספר לגימטריא
        
             @ הפרמטר הראשון והחובה הוא כמובן המספר אותו רוצים להמיר
        
             @ השני קובע כברירת מחדל שלאותיות לא יתווספו גרשיים
               → TRUE יגדיר שכן יהיה גרשיים
        
             @ השלישי קובע כברירת מחדל שהאלפים יחושבו בנפרד ולא יתקבל מחרוזת של תתתתתתתתת…
                 כמו כן הוא קובע שהמילה `אלפים` תתווסף למחרוזת
              ←ניתן להגדיר בו 0 כדי לבטל כליל או אחד כדי לקבל את התוצאה כ ה' תשע"ח למשל בלי המילה אלפים
        
             @ הרביעי יקבע האם להציב אותיות מנצפכ בסוף מילה כברירת מחדל או םןץףך אם נגדיר true
            */
        
            public static function מספר_לאותיות ( $num , $gershayim = FALSE , $alafim = 2 , $םןץףך = FALSE )
            {
        
        
                $gimatriya = self::מספר_לגימטריא ( $num , $alafim ) ;
        
                if ($gershayim)
                {
                    $gimatriya = explode ( ' ' , $gimatriya ) ;
        
                    $i = 0 ;
                    foreach ( $gimatriya as $str )
                    {
                        if( $str == 'אלפים' ) {$i++; continue ; }
        
                        if( mb_strlen( $str , 'UTF-8' ) == 1 )
                        {
                            $gimatriya [$i] .= "'" ;
                        }else{
                            $gimatriya [$i] = (mb_substr ( $str , 0 , mb_strlen( $str , 'UTF-8' ) - 1 ) . '"' . mb_substr ( $str , mb_strlen( $str , 'UTF-8' )-1 ,1 ))  ;
                        }
                        $i++;
                    }
        
                    $gimatriya = implode ( ' ' , $gimatriya ) ;
                }
        
                if ( $םןץףך )
                {
                    $replace = array ( 'מ' => 'ם' ,'נ' => 'ן' ,'צ' => 'ץ' ,'פ' => 'ף' ,'כ' => 'ך' );
        
                    $str = $gimatriya ;
        
                    $last_ot = mb_substr ( $str , mb_strlen( $str , 'UTF-8' )-1 ,1 ) ;
        
                    $gimatriya = mb_substr ( $str , 0 , mb_strlen( $str , 'UTF-8' ) - 1 ) ;
        
                    $gimatriya .= in_array ( $last_ot , array ( 'מ', 'נ', 'צ', 'פ', 'כ' ) ) ? $replace[$last_ot] : $last_ot ;
                }
        
                return $gimatriya ;
            }
        
            /*
            פונקציה סטטית המשווה גימטריא של שתי מחרוזות ומחזירה אמת בהתאמה ושקר באי התאמה
             @ הפרמטר הראשון והשני הם המחרוזות להשואה
              @ הפרמטר השלישי והרביעי יגדירו מפריד אלפים עבור המחרוזות שבפרמטר הראשון והשני
            */
            public static function גימטריא_שווה  ( $str1 , $str2 , $alafim1 =FALSE , $alafim2 =FALSE )
            {
        
                return self::אותיות_למספר ( $str1 , $alafim1 )  == self::אותיות_למספר ( $str2 , $alafim2 ) ? TRUE : FALSE ;
            }
        
        
        //מערך אם גימטריא של כל האותיות
            protected static $OTIYOT = array (
                'א' => 1 ,
                'ב' => 2 ,
                'ג' => 3 ,
                'ד' => 4 ,
                'ה' => 5 ,
                'ו' => 6 ,
                'ז' => 7 ,
                'ח' => 8 ,
                'ט' => 9 ,
                'י' => 10 ,
                'כ' => 20 ,
                'ך' => 20,
                'ל' => 30 ,
                'מ' => 40 ,
                'ם' => 40 ,
                'נ' => 50 ,
                'ן' => 50 ,
                'ס' => 60 ,
                'ע' => 70 ,
                'פ' => 80 ,
                'ף' => 80 ,
                'צ' => 90 ,
                'ץ' => 90 ,
                'ק' => 100 ,
                'ר' => 200 ,
                'ש' => 300 ,
                'ת' => 400
            );
        
        
        //פונקציה פנימית המבצעת את החישוב ממספר לאותיות
            protected static function מספר_לגימטריא ( $num , $alafim = 2 )
            {
                $num = (int)$num ;
        
                $gimatriya = '' ;
        
                switch( $num )
                {
                    case 0:
                        break;
        
                    case ( $num >= 1000 ) :
        
                        if ( $alafim )
                        {
                            $rest = $num % 1000 ;
                            $gimatriya .= self::מספר_לגימטריא ( ( $num -$rest ) / 1000 ) ;
                            $gimatriya .= $alafim==2? ' אלפים ' : ' ' ;
                        }else{
                            $rest = $num % 400 ;
                            foreach( range( 1, ($num -$rest)  / 400 ) as $i ) { $gimatriya .= 'ת' ; }
                        }
        
                        $gimatriya .= self::מספר_לגימטריא ( $rest , $alafim ) ;
                        break;
        
                    case ( $num >= 400 ):
                        $rest = $num % 400 ;
                        foreach( range( 1, ($num -$rest)  / 400 ) as $i ){ $gimatriya .= 'ת' ; }
                        $gimatriya .= self::מספר_לגימטריא ( $rest , $alafim ) ;
                        break;
        
                    case ( $num >= 100 ):
                        $rest = $num % 100 ;
                        $gimatriya .= array_search ( $num - $rest , self::$OTIYOT );
                        $gimatriya .= self::מספר_לגימטריא ( $rest , $alafim ) ;
                        break;
        
                    case 15:
                        $gimatriya .=  'טו' ;
                        break;
        
                    case 16:
                        $gimatriya .= 'טז' ;
                        break;
        
                    case ( $num >= 10 ):
                        $rest = $num % 10 ;
                        $gimatriya .= array_search ( $num - $rest , self::$OTIYOT );
                        $gimatriya .= self::מספר_לגימטריא ( $rest , $alafim ) ;
                        break;
        
                    case ( $num < 0 ):
                        break;
        
                    default:
                        $gimatriya .= array_search ( $num , self::$OTIYOT );
        
                }
        
                return $gimatriya ;
            }
        
        //פונקציה פנימית המבצעת את החישוב מאותיות למספר
            protected static function גימטריא_למספר ( $str )
            {
                $str = preg_replace( "/[^א-ת]/" , '' , $str );
        
                $gimatriya = 0 ;
        
                for( $i = 0 ; $i < mb_strlen( $str , 'UTF-8' ) ; $i++ )
                {
                    $gimatriya += self::$OTIYOT [mb_substr ( $str , $i , 1)] ;
                }
                return $gimatriya ;
            }
        
        }//end of class גימטריא
        
        I
        I
        ivrtikshoret
        כתב ב נערך לאחרונה על ידי ivrtikshoret
        #3

        @חוקר
        משום מה לא הצלחתי לקבל את מה שרציתי מהקוד שלך
        אז שיפצרתי את הקוד שלי אפשר להשתמש עם זה בשמחה

        
        //גימטריה מספרים לאותיות
        function convertWord($word) {
        $convertLetter = function ($letter) {
            $values = [
        1 => 'א', 2 => 'ב',
        3 => 'ג', 4 => 'ד', 5 => 'ה', 6 => 'ו',  7 => 'ז',  8 => 'ח',  9 => 'ט',  10 => 'י', 20 => 'כ',
         30 => 'ל', 40 => 'מ', 50 => 'נ', 60 => 'ס',  70 => 'ע',  80 => 'פ',  90 => 'צ',  100 => 'ק', 200 => 'ר',  300 => 'ש', 400 => 'ת',
            ];
        
            return $values[$letter];
        };
        if (strlen($word)== 1){
        $word = $convertLetter($word);
        }
        elseif (strlen($word)== 2){
        $a = (intdiv($word, 10))*10;
        $b = $word-$a;
        $word = $convertLetter($a).$convertLetter($b);
        }
        elseif (strlen($word)== 3){
        $a = (intdiv($word, 100))*100;
        $b = (intdiv(($word-$a), 10))*10;
        $c = $word-$a-$b;
        $word = $convertLetter($a).$convertLetter($b).$convertLetter($c);
        }
        $word = str_replace("י"."ה","טו",$word);
        $word = str_replace("י"."ו","טז",$word);
        
        return $word;
        }
        

        עריכה: זה עובד רק עד 499 (אני הייתי צריך את זה רק עד ל 200 אז זה מצוין בשבילי) מי שרוצה מוכן לשפר את זה

        תגובה 1 תגובה אחרונה
        3

        שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

        נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

        בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

        הרשמה התחברות
        תגובה
        • תגובה כנושא
        התחברו כדי לפרסם תגובה
        • מהישן לחדש
        • מהחדש לישן
        • הכי הרבה הצבעות


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

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

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