Gå til innhold

finne teksten "<?!(php)" med regexp?


Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet+1374861

dette kan umulig stemme....

det du sier her (med mindre jeg er syyykt trøtt og lei akkurat nå) vil matche alle tilfeller der:

"<?" ikke er etterfulgt av en enkelt av bokstavene p eller h.

 

på en måte så oppnår du vel målet ditt, men helt korrekt er det vel ikke... hvis det fantes relevante syntakser som var veldig like, men ikke identiske ville du OGSÅ ha luket vekk syntakser som:

"<?hp ", "<?ph ", "<?ppp " osv.

 

det du egentlig vil her regner jeg med er å konvertere "<?" til "<?php" ... ?

jeg tok meg ikke tid til å sjekke dette, men jeg vil anta at det er obligatorisk med ett space etter "<?" i php4, med mindre bokstavene "php" følger. dermed vil du jo kunne utelukke at php er der ved å bruke regex mønsteret:

"<\?\s", evt "<\? ".

 

en alternativ løsning på det du har begynnt med er jo å slå til med:

"<\?[^p][^h][^p]".

det vil vel også egentlig holde med:

"<\?[^p]" siden jeg ikke ser noe annet lovlig lignende tilfelle...

 

det finnes jo en hel haug med løsninger. her må du foreta noen flere vurderinger, men la gå:

"<\?(php\s)?" (her må du da sjekke for at gruppe 1 ikke eksisterer)

 

 

*med forbehold om trøtte feil

Endret av Slettet+1374861
Lenke til kommentar

tusen takk for at dere tok dere tid til å hjelpe meg ;)

det som ser ut til å fungere bra er

<\?(?!php)

:)

eneste er at short tag har ennå en varianten som kanskje er best å utelate i det første søket

<?="test"?>

 

så da blir koden noe sånt som slik:

For å finne alle php short tags "<?" :

<\?(?!php|\=)

Replace tekst:

<?php

 

For å finne alle php short tags "<?=" :

<\?=

Replace tekst:

<?php echo

Lenke til kommentar
Gjest Slettet+1374861

Ser jo solid ut det der.

Har ikke testet så mye med den spesielle (nye for meg) bruken av "?" i kombinasjon med likhets-operatorer, men går ut ifra at i "(?!php|\=)" vil "?!" gjelde for alle case inne i gruppen..

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...