Keresés

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

  • Taci

    addikt

    válasz sztanozs #20785 üzenetére

    Köszönöm (a JS topikban is) a linkeket. Ezeket már megtaláltam, átnéztem, értelmeztem (legalábbis folyamatban van.)

    Ha html tagbe illesztesz be, akkor mindent célszerű kódolni, ami nem lehet URL-ben...
    Itt erre gondolsz?
    htmlspecialchars()
    & (ampersand) becomes &
    " (double quote) becomes "
    ' (single quote) becomes '
    < (less than) becomes &lt;
    > (greater than) becomes &gt;

    ----------

    Az adatbázisba raktározó részt már régen csináltam, így most meg kellett néznem, mi-miért van.

    És azt találtam, hogy mivel a különböző források eltérően kezelik a tartalmakat, össze-vissza kapom az adatot. Pl.:

    Egyik helyről így kapom:
    szöveg első része &#8211; szöveg másik része (ez a "hosszabb" kötőjel: –)

    A másik helyről pedig már így:
    szöveg első része – szöveg másik része

    Ugyanígy az idézőjelekkel is pl.

    Ezért eredetileg úgy csináltam, hogy mindegy, melyik forrásból érkezett az adat, így tároltam el:
    htmlspecialchars_decode($description, ENT_QUOTES);

    Megjelenítésre pedig így adtam át:
    htmlspecialchars($description, ENT_QUOTES);

    Ez mondjuk a "hosszabb" kötőjelen pont nem segített, de az a legkevesebb, átíratom majd, ha ilyet talál, írja át normál kötőjelre.

    A kérdésem most az lenne, mivel már eléggé bekutyultam magam a sok új infóval és teendővel:

    Ez-e a jó irány, hogy htmlspecialchars_decode használatával tároljam, és a megjelenítéshez menjen a htmlspecialchars?
    Vagy eleve már a decode --> encode után kaptottat tároljam?

    Bocs, ha túl kézenfekvő dolgot kérdezek, de már nem látok tisztán.

    Ez egy tisztább példa lesz:
    $description = "&" . ' "' . " '" . " <" . " >" . " –"
    . " &amp;" . " &quot;" . " &#039;" . " &lt;" . " &gt;" . " &#8211;"
    . " <b>bold text</b>";
    Tehát mindkét változatban megkapom ezeket a karaktereket. Nekem ami fontos lenne, hogy:
    - kijelezve "szépen" legyenek
    - viszont a kódolás miatt a htmlspecialchars is használva legyen.

    Ezt jelenleg így tudom elérni.
    $description = htmlspecialchars_decode($description, ENT_QUOTES);
    $description = htmlspecialchars($description, ENT_QUOTES);
    echo $description;
    Kivéve a hosszabb kötőjelet, de az nem érdekel.
    Az output:
    & " ' < > – & " ' < > &#8211; <b>bold text</b>

    Mentsem akkor ezt a tartalmat (előbb dekód, aztán kód) az adatbázisba, és simán adjam át a HTML kódba illesztésre?

    Bocs a hosszú megfogalmazásért.

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