vet inte om följande kan lösa det, annars kanske det kan vara en liten bit på väg
preg_match_all("/\$lang\['MENY_[^\]]+']\s*=\s*\"(.+)\";/s", $buf, $match);
5 svar · 512 visningar · startad av Fredde Mannen
Hur skall jag skriva ett sökmönter för att matcha alla rader i ett dokument som följer den form:
$lang['MENY_HOME'] = "<a href=\"#\">Startsidan</a>";
$lang['MENY_LOGOUT'] = "<a href=\"#\">Logga ut</a>";
Jag vill alltså komma åt all text mellan dubbelfnuttarna på varje rad där jag har $lang['MENY_vadsomhelst'] = "<a href=\"#\">länk</a>";
dvs den feta texten.
vet inte om följande kan lösa det, annars kanske det kan vara en liten bit på väg
preg_match_all("/\$lang\['MENY_[^\]]+']\s*=\s*\"(.+)\";/s", $buf, $match);
The_Hulk skrev:
vet inte om följande kan lösa det, annars kanske det kan vara en liten bit på väg
preg_match_all("/\$lang\['MENY_[^\]]+']\s*=\s*\"(.+)\";/s", $buf, $match);
Jag får ingen träffa på den, men om jag tarbort \$ och bara /lang...osv..
så får träffar, returnerar
lang['MENY_HOME'] = "Startsidan"; $lang['MENY_LOGOUT'] = "<a href=\"#\">Logga ut</a>";
..
frågan är om jag skall köra då en preg_match_all igen, och plocka ut det som finns mellan dubbelfnuttarna.. eller om det finns någon annat sätt..
Detta mönster
/\$lang\['MENY_[^\]]+']\s*=\s*\"(.+)\";/s
funkade finfint!
Men nu har jag problemet att jag inte vet hur jag skall få det utskrivet.. får bara array eller inget alls.. men enligt en sida på nätet där jag kunde testa mönstret kunde den hitta vad jag sökte efter.. men hur skriver jag ut alla som matchade..
Vad ska du skriva ut?
I arrayen $match[0] har du hela raderna.
I arrayen $match[1] har du länkarna.