HwapX

Custom var template parser v1

Jan 30th, 2025
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.83 KB | None | 0 0
  1. <?php
  2. $re = '/(?<VAR>\$\w+)(?::(?<PAD>\d+)(?:\.(?<DEC>\d+)|)|#(?<DATE>[^\s]+))/m';
  3. $str = 'My name $name
  4.  
  5. $name:10   $date#Y-m-d_H:i:s  $num:10.2
  6.  
  7. qua
  8.  
  9. $date#Y-m-d  asdasd $num:5.0 qwe $var:5
  10.  
  11. qualquer texto no meio';
  12.  
  13. echo preg_replace_callback($re, function($m) {
  14.     $out = '';
  15.     $var = $m['VAR'];
  16.     if(isset($m['DATE']))
  17.         $var =
  18.             "date(".
  19.                 "'".str_replace('_', ' ', $m['DATE'])."', ".
  20.                 "strtotime($var)".
  21.             ")";
  22.     elseif(isset($m['DEC']))
  23.         $var =
  24.             "substr(".
  25.                 "str_pad(".
  26.                     "number_format(".
  27.                         "$var,".
  28.                         "{$m['DEC']},".
  29.                         "',',".
  30.                         "'.'".
  31.                     "),".
  32.                     "{$m['PAD']},".
  33.                     "' ',".
  34.                     "STR_PAD_RIGHT".
  35.                 ")".
  36.             ")";
  37.    
  38.     elseif(isset($m['PAD']))
  39.         $var = "substr(str_pad($var, {$m['PAD']}, ' '))";
  40.    
  41.     return "<?= $var ?>";
  42. }, $str);
  43.  
  44. // Print the entire match result
  45.  
Advertisement
Add Comment
Please, Sign In to add comment