Hallo. Ik ben redelijk nieuw in php. Ik heb onderstaande php script wat goed werkt. De oude tekst die zich bevindt in test.html wordt perfect vervangen voor de nieuwe middels de preg_replace functie. echter nu loop ik tegen een ander probleem aan. Ik heb namelijk een class toegevoegd in de html code dus als volgt:

<h1 class="check1>Oude tekst hier</h1>

Weet iemand wat nu de juiste synthax is in $search om de tekst toch te vervangen via de preg_replace functie?

Hieronder dan de php:

<?php

$myfile = "test.html"; // or .php
$string = file_get_contents($myfile);

$search = "/[^<h1>](.*)[^<\/h1>]/";
$replace = "Here my new text";



$content = preg_replace($search,$replace,$string);
file_put_contents($myfile, $content);
?>
die regex zegt eigenlijk:

we beschouwen een string en daarin zoeken we een karakter dat niet staat in het lijstje

"<", "h", "1", ">"
Daarna pakken eender welk teken (die .*)
en tenslotte willen we niet dat er een van de tekens uit dat laatste blok in staan.
Dat is gelijk aan het beginblok, met een / als extra.

Maar zoals opgemerkt wordt aan ook <1h> of <111hhhh111h>>> onder gevangen.
Dat is dus niet de manier.

Ah ja, op die manier. Ik zat gisteren even te testen en ik ging er vanuit dat die code uit het 1e bericht al klopte. Maar dat was dus niet zo :-) En de test-string die ik gebruikte leverde dus min of meer per ongeluk het 'gewenste' resultaat op, maar dat gold dus enkel voor die ene specifieke test-string ... lol.
ja klopt. die werkt inderdaad niet. is toch allemaal best wel gecompliceerd. Maar oefening baart kunst.

Reageren