Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Highlighter] Gaat de mist in met PHP

Pagina: 1
Acties:
  • 30 views sinds 30-01-2008

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 13-10 20:39
In een oud topic vond ik dit stukje code:

PHP:
1
2
3
<?
$string = preg_replace("[knip]", "<a href=\"\\1">2</a>", $string);
?>


Het lijkt er alleen op dat door dit stukje, niet correct geschreven, PHP de highlighter de mist in gaat. Volgens mij zouden "[knip]", "<a href=\" en ">2</a>" in het rood gekleurt moeten worden, omdat dit strings tussen dubbele quotes zijn. Juist het \\1 stukje zou niet rood geparsed moeten worden omdat hier de vorige dubbele quote gesloten is.
Ook de rode streep, die waarschijnlijk aan moet geven dat de laatste quote niet afgesloten wordt, is niet terecht. Alle qoutes worden namelijk wel netjes afgesloten. :)

Het lijkt mij dat er ergens een foutje zit in de highlighter. De highlighter intrepeteerd de code iig anders dan PHP het zelf zou doen tijdens het uitvoeren. Het kan natuurlijk ook zijn dat de hightlighter geen support leverd op incorrecte PHP en dat jullie dit dus niet willen oplossen, maar het viel me op.

Verwijderd

Er zit een fout in de PHP code, en de parser heeft dat goed. De vierde dubbele quote is escaped en daarom deel van de string. De vijfde dubbele quote sluit de string pas. De zesde quote opent een string die niet wordt afgesloten, en dat levert een fout.

Niets mis met de highlighter, wel iets mis met de code. :)

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 23-11 17:12
De kwoot na de '1' dient hier als afsluitkwoot van de kwoot die voor de a-tag staat. Hierdoor heeft de kwoot na de /a tag geen eide kwoot meer en daarom zie je die rode streep. De highlighter van PHP zelf doet bijna hetzelfde als de eigen parser van ??? (whoami, .oisyn, drm, ACM, chem, ben de naam ff kwijt). Alleen dan is het stuk waar hier een rode streep staat wel gewoon rode text.

Dus ik denk dat de highlighter niet de mist in gaat, nou eigenlijk wel omdat deze phpcode brak is.

  • Wolf87
  • Registratie: Juli 2004
  • Laatst online: 21:44
PHP:
1
2
3
<?
$string = preg_replace("[knip]", "<a href=\"\\1">2</a>", $string);
?>


Als je goed kijkt wordt de laatste " na de 1 in href niet geescaped, dit is het probleem hier

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 13-10 20:39
Ah, ik zie hem nu inderdaad. Ik had even niet opgemerkt dat de 4e dubbele quote van links escaped is. 8)7

De fout zit in dit geval echt 100% in de code, geen problemen in de highlighter inderdaad. Sorry, volgende keer zal ik beter opletten. :P

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

debuggen met onze highlighter, ut mot nie gekkur worduh \o/ ;)
anyways, not a bug, it's a feature!

God, root, what is difference? | Talga Vassternich | IBM zuigt

Pagina: 1

Dit topic is gesloten.