paddanMedlem sedan dec. 2002323 inlägg
Hej,
Finns där någon vänlig själ som kanske kan hjälpa mig med detta?
Behöver köra preg_replace på en sträng och hämta replacement från en funktion.
Nåt sånt här...
$pattern = "[gallery(0,9)]";
$str= preg_replace($pattern, get_images($1), $str);
Det ska alltså letas efter tex "[gallery2]" men 2 är så klart ett nummer mellan 0-xxxxxx
Någon som har en ide?
/M
nitro2k01Medlem sedan aug. 20037 630 inlägg
$pattern = '/\[gallery(\d+)\]/e';
$str= preg_replace($pattern, 'get_images($1)', $str);
Notera att jag använder enkelcitat för strängar. Detta gör escapen mer tydlig. (Man behöver inte hålla på med dubbla \) [ och ] är reservade tecken, så de måste alltså föregås med \ (Sk escape) Hade man använt dubbelcitat för strängarna skulle man fått ha två \ - först ett för tolkningen av det andra \ i strängen, sedan ett som hamnar i uttrycket.
( och ) ringar in resultatet
\d söker efter en siffra.
+ gör att sökningen efter en siffra upprepas så att du kan matcha en elelr flera nuffror.
/ och / omsluter hela uttrycket. e talar om för preg_replace att ersättningsträngen innehåller kod. Notera att koden ligger i en sträng. $1 infogar matchningen.
Skulle du någon gång behöva infoga en sträng istället för ett nummet till ett e-uttryck, så måste du infoga citat-tecken precis som om du skrev in en sträng varsomhelst annars - $1 infogar bara strängen rakt av. Dock escape'as eventuella enkel- och dubbelcitat i matchningen innan den infogas. Jag kan förklara det där närmare någon annan gång om det behövs.
paddanMedlem sedan dec. 2002323 inlägg
Tack för hjälpen. Funkade klockrent.
Infon uppskattades också...
/M
The_HulkMedlem sedan juni 20031 937 inlägg
Om du har fått svar på din fråga så acceptera gärna svaret så att man lätt kan se att tråden är löst.