3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = 'María vive en un pueblo de 25 957 habitantes y cobra 1859 euros al mes. OJO: no sé si os habéis fijado, pero los números del último ejemplo no llevan un punto o una coma separando los millares (25.957 o 1.859). Sé que resulta extraño, pero la nueva normativa de la R.A.E. dice que los números de cuatro cifras NO llevarán separación (1859) y los números de cinco cifras o más NO llevarán ni puntos ni comas, sino una separación (25 957 o 1 343 392). El 94% de los niños ha traído los deberes hechos. He pagado $50,95 dólares.'; $numbers = preg_replace('/[^0-9\.,]+/', ' ', $string); $decimals = preg_replace('/([^0-9][\.,])/', '', $numbers); var_dump($decimals);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/9aUCt
function name:  (null)
number of ops:  17
compiled vars:  !0 = $string, !1 = $numbers, !2 = $decimals
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'Mar%C3%ADa+vive+en+un+pueblo+de+25+957+habitantes+y+cobra+1859+euros+al+mes.+OJO%3A+no+s%C3%A9+si+os+hab%C3%A9is+fijado%2C+pero+los+n%C3%BAmeros+del+%C3%BAltimo+ejemplo+%0Ano+llevan+un+punto+o+una+coma+separando+los+millares+%2825.957+o+1.859%29.+S%C3%A9+que+resulta+extra%C3%B1o%2C+pero+la+nueva+normativa+de+la+R.A.E.+%0Adice+que+los+n%C3%BAmeros+de+cuatro+cifras+NO+llevar%C3%A1n+separaci%C3%B3n+%281859%29+y+los+n%C3%BAmeros+de+cinco+cifras+o+m%C3%A1s+NO+llevar%C3%A1n+ni+puntos+ni+comas%2C+%0Asino+una+separaci%C3%B3n+%2825+957+o+1+343+392%29.+El+94%25+de+los+ni%C3%B1os+ha+tra%C3%ADdo+los+deberes+hechos.+He+pagado+%2450%2C95+d%C3%B3lares.'
    9     1        INIT_FCALL                                               'preg_replace'
          2        SEND_VAL                                                 '%2F%5B%5E0-9%5C.%2C%5D%2B%2F'
          3        SEND_VAL                                                 '+'
          4        SEND_VAR                                                 !0
          5        DO_ICALL                                         $4      
          6        ASSIGN                                                   !1, $4
   10     7        INIT_FCALL                                               'preg_replace'
          8        SEND_VAL                                                 '%2F%28%5B%5E0-9%5D%5B%5C.%2C%5D%29%2F'
          9        SEND_VAL                                                 ''
         10        SEND_VAR                                                 !1
         11        DO_ICALL                                         $6      
         12        ASSIGN                                                   !2, $6
   12    13        INIT_FCALL                                               'var_dump'
         14        SEND_VAR                                                 !2
         15        DO_ICALL                                                 
         16      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
145.63 ms | 1395 KiB | 17 Q