L learn Medlem sedan jan. 2005 1 130 inlägg Frågan 1 apr. 2009 10:49 #1 Jag har en sträng som kan se ut enligt följande:
$str = "Bla bla bla {test.php} bla bla bla {lalala.php} bla bla bla..."
Nu vill jag plocka ut alla "filnamn", alltså de som står innanför { och }. Filnamnen ska sparas i en array, i detta fall:
$arr[0] = "test.php";
$arr[1] = "lalala.php";
Hur ska jag göra? Jag kommer inte på något bra sätt alls...
Tack!
om det alltid är .php:
ereg('\{([[:alnum:]]_+\.php)\}', $subject, $regs)
Så har du arrayn i $regs
S SPiN Medlem sedan mars 2000 7 896 inlägg Använd preg_match_all() .
preg_match_all("/\{(.*?)\}/", $str, $matches);
var_dump($matches[1]);
Edit, nu var jag lite långsam. Men det är faktiskt ereg() också om man jämför med preg_match*() - som oftast är en snabbare lösning. Innan PHP5 får man också bara ut max 10 träffar om man använder ereg().
Eftersom jag kan 0 om PHP så använde jag bara RegexBuddy för att få ut uttrycket för att få matchningar ;) ingen aning om ereg är dåligt eller inte ;)