Substitution af tekst - vha. regulær expression.
Hej eksperterJeg skal have lavet noget tekstsubstitution af nogle data fra en database.
Haves:
array 1:
array(
'1' => 'Fornavn1 Efternavn1',
'3' => 'Fornavn2 Efternavn2',
'6' => 'Fornavn3 Efternavn3',
...
);
array 2:
array(
'meget lang tekst med mange sætninger og ord - 1',
'meget lang tekst med mange sætninger og ord - 2',
'meget lang tekst med mange sætninger og ord - 3',
...
);
Det jeg gerne vil have er at teksten i array 2 bliver søgt i gennem efter matches med navne fra array 1.
Hvis navnet 'Fornavn1 Efternavn1' bliver fundet i en tekst i array 2, skal det udskiftes med dette link:
<a href="http://www.server.dk/?cid=$cid&pid=$pid" title="Blabla Fornavn1 Efternavn1 blabla">Fornavn 1 Efternavn1</a>
hvor $pid skal være det indeks i array 1, som matcher 'Fornavn1 Efternavn1' - i dette tilfælde er pid=1.
Der gælder at alle elementer i array 2 skal gennemløbes og checkes op mod alle elementer fra array 1.
Håber forklaringen er til at forstå - spørg, hvis der er tvivl.
Det er vigtigt at løsningen er rimelig efficient, da det er data som genereres on the fly.
Problemet kan vist nemmest beskrives som at slå alle ord i en tekst op i en ordbog og derefter lave links på alle de ord der blev fundet. (Dette er også bare en eksempelforklaring og ikke det aktuelle tilfælde!)
Jeg vil selv gætte på, at det måske er spørgsmål om at generere en reg.exp udfra indholdet i array 1 og derefter køre elemeneterne i array 2 op imod denne reg.exp - men det er bare et gæt! (Jeg stinker lidt til det dér med regulære expressions...)
Håber I kan hjælpe.
Mvh
tipsen
