Advertisement
Webotvurci

šířka textu v PHP

Feb 8th, 2023
895
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.63 KB | None | 0 0
  1. <?php
  2.  
  3. function calculateTextWidth( $text, $font ) {
  4.   $fontSizes = [
  5.     'Open Sans' => [
  6.       'a' => 6.35, 'b' => 6.35, 'c' => 5.24, 'd' => 6.35,
  7.       'e' => 5.24, 'f' => 3.29, 'g' => 6.35, 'h' => 6.35,
  8.       'i' => 2.61, 'j' => 2.61, 'k' => 5.53, 'l' => 2.61,
  9.       'm' => 9.92, 'n' => 6.35, 'o' => 6.35, 'p' => 6.35,
  10.       'q' => 6.35, 'r' => 4.04, 's' => 5.24, 't' => 3.29,
  11.       'u' => 6.35, 'v' => 5.53, 'w' => 8.16, 'x' => 5.53,
  12.       'y' => 5.53, 'z' => 5.24, ' ' => 2.61
  13.     ],
  14.     'Arial' => [
  15.       'a' => 6.5, 'b' => 6.5, 'c' => 5.5, 'd' => 6.5,
  16.       'e' => 5.5, 'f' => 4, 'g' => 6.5, 'h' => 6.5,
  17.       'i' => 2.5, 'j' => 2.5, 'k' => 6, 'l' => 2.5,
  18.       'm' => 9.5, 'n' => 6.5, 'o' => 6.5, 'p' => 6.5,
  19.       'q' => 6.5, 'r' => 4.5, 's' => 5, 't' => 4,
  20.       'u' => 6.5, 'v' => 6, 'w' => 8, 'x' => 6,
  21.       'y' => 6, 'z' => 5, ' ' => 2.5
  22.     ],
  23.     'Roboto' => [
  24.       'a' => 6.5, 'b' => 6.5, 'c' => 5.5, 'd' => 6.5,
  25.       'e' => 5.5, 'f' => 4, 'g' => 6.5, 'h' => 6.5,
  26.       'i' => 2.5, 'j' => 2.5, 'k' => 6, 'l' => 2.5,
  27.       'm' => 9.5, 'n' => 6.5, 'o' => 6.5, 'p' => 6.5,
  28.       'q' => 6.5, 'r' => 4.5, 's' => 5, 't' => 4,
  29.       'u' => 6.5, 'v' => 6, 'w' => 8, 'x' => 6,
  30.       'y' => 6, 'z' => 5, ' ' => 2.5
  31.     ]
  32.   ];
  33.  
  34.   $width = 0;
  35.   $text = strtolower( $text );
  36.   for ( $i = 0; $i < strlen( $text ); $i++ ) {
  37.     $char = $text[ $i ];
  38.     $width += $fontSizes[ $font ][ $char ];
  39.   }
  40.  
  41.  
  42.   return $width;
  43. }
  44.  
  45. // Použití funkce
  46. $text = 'Hello World';
  47. $font = 'Open Sans';
  48.  
  49. $width = calculateTextWidth( $text, $font );
  50.  
  51. echo 'Šířka textu ' . $text . ' v fontu ' . $font . ' je: ' . $width . ' px';
  52.  
  53. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement