26. juli 2010 - 15:06
Der er
5 kommentarer og 1 løsning
extract function string
Hej Experter Er ikke lige den skarpeste til reg ex. Men hvordan eksploder jeg følgende streng til variabler? eksempel på funktions streng. min_funktion(tekst, 1, teks\,t, tekst); Nu kunne jeg godt tænke mig at lave ovenstående linie om til noget ala. $function = array([0] => "min_funktion", [1] => "tekst", [2] => "1", [3] => "teks,t", [4] => "tekst") Kan dette gøres rimeligt simpelt? Burde jo ikke være det store problem med regex. eller lign.
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
$function[0]($function[1],$function[2]); Ville være mit bud..
Jeg fik ikke læst dit indlæg korrekt, ja du har ret det ville kunne løses med regex...
Jeg synes at problemet driller lidt i regex, så mit forslag er en gammeldags parsing: function parse($s) { $buf = ''; $lastesc = false; for($i = 0; $i < strlen($s); $i++) { switch($s[$i]) { case '(': $func = trim($buf); $buf = ''; break; case ')': case ',': if(!$lastesc) { $args[] = trim($buf); $buf = ''; } else { $buf .= $s[$i]; $lastesc = false; } break; case '\\': $lastesc = true; break; default: $buf .= $s[$i]; $lastesc = false; break; } } echo $func . ":\r\n"; foreach($args as $arg) { echo ' ' . $arg . "\r\n"; } }
Hej Arne Ligner lidt den løsning jeg selv startede med. Din kode er dog mere overskuelig. Venligst smid et svar som tak for hjælpen.
Bemærk at hvis koden skal være robust overfor syntax fejl, så skal dere teste noget mere (koden ovenfor går i kage ved komma i funcktions navn etc.).
Vi tilbyder markedets bedste kurser inden for webudvikling