Toon posts:

[PHP] Preg_match_all

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende string:

$text = 'asdasd asd asd [kop1]beheersbaarheid test[/kop1]Brand, Inbraak[kop1]Het dienstenpakket van [/kop1]De groep heeft alle test kennis

In deze string moeten alle woorden "test" vervangen worden door een link naar www.test.nl. Dit kan heel makkelijk met een simpele replace alleen wordt dan ook "test" binnen de [kop1][/kop1] tags vervangen en dat is juist niet de bedoeling.

Nu pak ik met deze preg_match_all alle gewone tekst en alle tekst tussen de [kop1][/kop1] tags eruit en zet deze in een array. Daarna een replace erover en weer in de juiste volgorde plakken. Dit gaat allemaal goed maar nu het probleem:

Het laatste stuk tekst na de [kop1][/kop1] tags wordt niet meegenomen in de array. Dit heb ik gebruikt.

PHP:
4
preg_match_all("/(.*)(\\[kop1\].*\\[\/kop1\])(.*)/U", $text, $array, PREG_PATTERN_ORDER);


Verder heb ik geprobeerd alle tekst met (.+?) af te vangen met /is aan het eind ipv /U. Dit werkte ook niet, hier ook weer hetzelfde probleem.

Wie kan me iets in de goede richting helpen :?

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Laat de code waarmee je alles weer aan elkaar plakt eens zien.

Verwijderd

Topicstarter
Ik lees gewoon $array uit. Maar daar zit echt niets meer in hoor. Het ligt volgens mij puur aan die regex dat het laatste stukje niet meekomt.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
PHP:
1
preg_match_all("/(.*)(\\[kop1\].*\\[\/kop1\]|$)/U", $text, $array, PREG_PATTERN_ORDER);

zoiets?

Verwijderd

Topicstarter
Dat was tie dus..ik dank u :)