Portál AbcLinuxu, 6. května 2025 06:11
explode()
. Například tohle (pozor, syntax highlight pro proměnnou $str je špatně)
<?php $str = ' $objekt->metodaA()->metodaB() ->metodaC(); $objekt->metodaX(); $objekt = null; '; preg_match_all('|\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\s*->\s*[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\(\))+|', $str, $matches); foreach ($matches[0] as $match) { $params = array_map('trim', explode('->', $match)); var_dump($params); }má následující výstup:
array 0 => string '$objekt' (length=7) 1 => string 'metodaA()' (length=9) 2 => string 'metodaB()' (length=9) 3 => string 'metodaC()' (length=9) array 0 => string '$objekt' (length=7) 1 => string 'metodaX()' (length=9)Ty šílené regexpy na jméno proměnné a metody jsou z manuálu PHP. Zjednodušeně celý regexp vypadá takto:
'|\$promenna(\s*->\s*metoda\(\))+|
|\$promenna(\s*->\s*metoda\(\))+|
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.