Új hozzászólás Aktív témák

  • Taci

    addikt

    válasz Taci #20813 üzenetére

    És nem is úgy működik, ahogy gondolnám/szeretném, hogy működjön.

    Adott pl. ez a sztring:
    $link = 'j&#65v&#X41s&#67ript';

    Itt a j ugye már eleve ;-re végződik, szóval skippelnie kellene. Ebből lenne a j karakter.
    A &#65-öt zárnia kellene ;-vel, de nem teszi. Ebből lenne az A karakter.
    A &#X41-t jól kezelni. Szintén az A karakter.
    És a &#67-t is zárni kellene ;-vel, de ezt sem teszi. Ez lenne a C karakter.

    Próbáltam átírni, hogy működjön, de nem tökéletes:
    $pattern = '/(&#(?:X[0-9a-f]{2,}|[0-9]{2,})(?!;))/i';
    Kipróbálható verzióban: [link]

    Itt az a baj, hogy "beragad" két karaternél, és nem nézi, hogy zárva van-e pontosvesszővel.
    Pl. a j-nél csak &#10-ig veszi, mögé rak és pontosvesszőt, és kilép, mint aki jól végezte dolgát. Eredményül pedig ezt adja: [sortörés]6;AvAsCript

    Szóval a két megoldás között lenne az igazság - nyilván sztanozs megoldásához sokkal közelebb.

    [ Szerkesztve ]

Új hozzászólás Aktív témák