Autor Zpráva
Timy
Profil
Mám funkci, která jako argument bere řetězec a ten řetězec pak vytiskne. Problém je v tom, že nevím jak zařídit, aby mi to nesežíralo zpětná lomítka. Příklad:

tex2img("\sqrt{x^2}=|x|\\\sqrt{x^4}=x^2");


Pokud si jen nechám vypsat tenhle string, objeví se: „\sqrt{x^2}=|x|\\sqrt{x^4}=x^2“. Jedno lomítko se mi ztratilo. Jak bych měl dosáhnout toho, aby se mi ten string zobrazil tak, jak chci, bez toho, aniž bych ručně upravoval původní string?Jediné co mě napadlo bylo addslashes(), ale to mi zase zdvojilo všechna zpětná lomítka.
DoubleThink
Profil *
Zpětné lomítko je řídicí znak (počátek escape sekvence). Všechny lomítka zdvoj nebo použij pro ohraničení stringu jednoduché uvozovky.
Timy
Profil
DoubleThink
Zdvojovat to pokud možno nechci, chtěl bych předávat plnohodnotný latexový výraz.

Jednoduché uvozovky také nepomáhají.

function tex2img($tex)
{
	echo $tex;
}
tex2img('\sqrt{x^2}=|x|\\\sqrt{x^4}=x^2');


vrátí to:
\sqrt{x^2}=|x|\\sqrt{x^4}=x^2
Mastodont
Profil
Budeš to muset zdvojit, jednoduché uvozovky opravdu nepomohou.
DJ Miky
Profil
Jediné co mě napadlo bylo addslashes(), ale to mi zase zdvojilo všechna zpětná lomítka.

To je snad účel, ne? Pomocí addslashes() je zdvojíš, takže se vypíšou přesně tak, jak mají být. Ale záleží, jestli to předáváš takhle jako řetězec, nebo to máš v proměnné a taháš to třeba z DB.

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:

0