simenss Skrevet 24. april 2007 Del Skrevet 24. april 2007 (endret) Jeg ønsker å erstatte HTML-utsnittet under, med General: <th>General</th> </tr> <tr> Det er uaktuelt å bruke strip_tags(), da det også vil fjerne resten av HTML-koden. Jeg ønsker derfor å benytte preg_replace(). Jeg har prøvd følgende, men får det ikke til å fungere: preg_replace("/<th>General<\/th>\n\r<\/tr>)/", "General", $html) Jeg har også prøvd forskjellige versjoner med paranteser rundt \n\r, kun \n, kun \r etc. men får det ikke til å fungere. Noen som kan hjelpe? EDIT: Dårlig emnetittel... Endret 24. april 2007 av simenss Lenke til kommentar
Anders Moen Skrevet 24. april 2007 Del Skrevet 24. april 2007 Skjønte ikke helt hva du mente med den forklaringa di, men ut i fra emnetittel tror jeg at du vil gjøre om enter-trykk til <br />? Det kan du i hvertfall bruke nl2br på, sånn her: <?php $a = "MAsse morsom, men likevel kjedelig tekst nedover her"; echo nl2br($a); ?> Lenke til kommentar
Runar0 Skrevet 24. april 2007 Del Skrevet 24. april 2007 Utestet PHP <?php preg_replace("/<th>General</th></tr><tr>/im", $text); ?> Ved å bruke m modifieren så vil den matche sjølv om teksten er på flere linjer Lenke til kommentar
grimjoey Skrevet 24. april 2007 Del Skrevet 24. april 2007 eller: preg_replace("/<th>General<\/th>\r\n<\/tr>\r\n<tr>/", $text); carriage return kommer før newline. Lenke til kommentar
jorgis Skrevet 24. april 2007 Del Skrevet 24. april 2007 eller: preg_replace("/<th>General<\/th>\r\n<\/tr>\r\n<tr>/", $text); carriage return kommer før newline. 8460498[/snapback] Gitt at du bruker windows-plattformen. Andre steder er linjeskift bare en enkel newline (\n), og regexen vil feile. Enkleste og beste er å bruke modifiers for å tillate linjeskift, evt. bruke en . Lenke til kommentar
simenss Skrevet 24. april 2007 Forfatter Del Skrevet 24. april 2007 (endret) Utestet PHP <?php preg_replace("/<th>General</th></tr><tr>/im", $text); ?> Ved å bruke m modifieren så vil den matche sjølv om teksten er på flere linjer 8459883[/snapback] Takk for svar. Har prøvd følgende kode: <?php $text = '<table> <tr> <th>General</th> </tr> <tr> </table>'; print(preg_replace("/<th>General<\/th><\/tr><tr>/im", NULL, $text)); ?> Den returnerer likevel hele HTML-koden. Om jeg fjerner <\/tr><tr> fra det regulære uttrykket, fjerner den <th>General</th>. Dette holder dessverre ikke for meg, så linjeskiftene er fortsatt et problem. Endret 24. april 2007 av simenss Lenke til kommentar
simenss Skrevet 24. april 2007 Forfatter Del Skrevet 24. april 2007 Fikk det til med: <?php $text = '<table> <tr> <th>General</th> </tr> <tr> </table>'; print(preg_replace("/<th>General<\/th>.<\/tr>.<tr>/s", NULL, $text)); ?> S modifieren gjør at jeg kan plassere punktum (.) der hvor det er linjeskift. En mer "delikat" løsning hadde likevel vært om den ignorerte linjeskiftene slik Shadows0 prøvde å forklare. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå