Portál AbcLinuxu, 2. listopadu 2025 03:20
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.