Autor Zpráva
Jiri Bednar
Profil *
Ahoj,
narazil jsem na problem s uvozovkamy.
Kdyz dam do promene napr: $a = "ahoj "haha" ";, tak to hodi chybu.
Pomoci funkce strtr jsem chtel nahradit vnitrni uvozovky timto \", ale bohuzel vyskoci chyba, vi si s tim nekdo rady?
gygabyte
Profil *
$a = 'ahoj "haha"';
Majkl578
Profil
musis to zapsat rovnou escapovane:
$a = "ahoj \"haha\" ";

popripade to dat do apostrofu:
$a = 'ahoj "haha" ';
gmvasek
Profil
Jak píšeš, uvozovky se musí odznačit zpětným lomítkem. Ale to udělej přímo v té proměnné a né až pomocí strtr.
<?php
$a = "ahoj \"haha\" ";

nebo

$a = 'ahoj "haha" ';
?>


edit: lol
Jiri Bednar
Profil *
Tento problem se vyskytuje v mem CMS, a pochybuji ze uziatel toto bude automaticky delat po napsani uvozovek. A kdyby to bylo takto
$a = 'ahoj "haha" ';


tak misto um¨vozovek nekdo napise apostrof a je to v haji.
nightfish
Profil
Jiri Bednar
http://phpfashion.com/escapovani-definitivni-prirucka
jinak zrovna znalost escapování v PHP bych u někoho, kdo tvoří "vlastní CMS", očekával
Jiri Bednar
Profil *
nightfish
Diky
Jiri Bednar
Profil *
Bohuzel se problem vyresil castecne.
Problem vznika v tom, ze prevadi i znaky < > a proto ze TinyMCE je potrebuje pro style, tak po prevedni nefunguji.
Da se funkce htmlspecialchars upravit pouze pro uvozovky? Nebo existuje jina funkce?

DIK
Ait
Profil *
addslashes()
Majkl578
Profil
Ait
to tezko
Yur4Y
Profil
Veď použite str_replace, nie?
$text = str_replace('"', '\\"', $text);
//resp. ekvivalentný zápis
$text = str_replace("\"", "\\\"", $text);
To nahradí každý znak " znakmi \".
Majkl578
Profil
Yur4Y
Ait
vy jste snad asi uplne navedeni? radite tu kraviny a houby o tom vite. jak muzes replacovat uvozovku, kdyz ten parse error vrati jeste pred tim (pri vytvareni retezce)? myslete trochu
Yur4Y
Profil
Nemám tušenie, ako ten redakčný systém autora témy funguje a s čím má vlastne problém. Veď dostal hore 3 príspevky o escapovaní úvodzoviek/apostrofov v reťazci. Ale pýtal si "htmlspecialchars pouze pro uvozovky", nech sa páči. Raz som sa stretol s riešením, keď sa dáta neukladali do DB, ale rovno sa vytváral PHP súbor. Tam boli funkcia addslashes() alebo to moje riešenie ideálne. Opakujem, neviem, ako je to riešené v spomínanom CMS.

Majkl578
Prosím, nemohli by ste nabudúce upozorňovať na chyby trošku kľudnejším tónom? :-/
panther
Profil
Yur4Y
Majkl578 - Prosím, nemohli by ste nabudúce upozorňovať na chyby trošku kľudnejším tónom? :-/
spíš by sis mohl nejdřív zkusit, jestli je tvoje „rada“ funkční ;-)
Yur4Y
Profil
Ja sa asi budem opakovať, ale Jiri Bednar hľadal funkciu, ktorá nahradí úvodzovku za čosi iné. Či to bude \", &quot; alebo čokoľvek, je moja rada funkčná a úvodzovku nahrádza. Pokiaľ je problém už pri zápise reťazca, tam vážne žiadna funkcia neexistuje, treba to escapovať hneď pri písaní kódu alebo použiť HEREDOC syntax. Ospravedlňujem sa, ale nemohol som tušiť, že autor prehliadne 3 príspevky so správnym riešením, tak som si problém vyložil po svojom.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: