Autor Zpráva
Han
Profil
Zdravím! Potreboval by som poradiť ako vlastne prepíšem všetky html znaky na entity medzi značakami pre? Skúšal som niečo s PHP funckiou htmlspecialchars ale neviem ako to nastavím iba na priestor medzi značkami <pre> a </pre>. Vopred ďakujem ;)
Tori
Profil
Htmlspecialchars je správně, koukněte ještě na preg_replace_callback.
Han
Profil
Pozrel som si to, no nejak neviem ako to použijem, nebol by nejaký príklad prosím?
Tori
Profil
preg_replace_callback('~(<pre>)(.*)(</pre>)~isU', function ($m) { 
    return $m[1] . htmlspecialchars($m[2], ENT_QUOTES, 'UTF-8', false) . $m[3]; 
  }, $text);
Han
Profil
Vypisuje mi to unexpected function na tom prvom riadku...
Tori
Profil
Han:
Máte PHP 5.2? Tak potom se nedá použít anonymní funkce:
function nahrada($m) { 
  return $m[1] . htmlspecialchars($m[2], ENT_QUOTES, 'UTF-8', false) . $m[3];  
}
preg_replace_callback('~(<pre>)(.*)(</pre>)~isU', 'nahrada', $text);
Han
Profil
Viem, že mám jalové otázky ale čo má potom byť v premennej $text? Prosím.
Tori
Profil
no ten kus textu / html, který chcete takhle upravit
Han
Profil
No, to síce áno, ale potreboval by som niečo čo by stačilo hocikde napísať <pre> </pre> a medzitým by sa to prerobilo na entity. Takto vkladať kód zapisovaním v PHP je dosť otrava...
Tori
Profil
Aha, takže kód stránky neukládáte do proměnné, ale rovnou po kouskách vypisujete echem? Můžete použít ob_start a ob_get_clean a z převodu na entity udělat jednu funkci, kterou předáte ob_start jako 1.parametr.
Han
Profil
Ďakujem, už to ide, no mám taký dotaz, ako strčím celý text do premennej nejak bez toho aby som ten text musel písať medzi <?php a ?> ? Ide mi o niečo ako u formulárov, že zadám name a potom to v PHP vytiahnem $_GET['name'], je niečo také? ;)
Tori
Profil
Asi úplně nerozumím - odkud se ten text bere? Chcete načíst obsah souboru do proměnné, nebo co?
Han
Profil
No, ten text tam xcem includovať, takže do premennej $text zadám cestu k includovanému súboru alebo ja neviem... :D
Tori
Profil
file_get_contents
Han
Profil
Presne! Vedel som že som že niečo také je, len som zabudol presný názov, ďakujem ;)
Han
Profil
V tomto skripte je niekde nejaká vada. Keď načítam do premennej $text súbor s týmto
preg_match_all("/<h2>(.*)<\/h2>/Us",$text,$nadpis, PREG_SET_ORDER); 
echo "<h2>";
echo $nadpis[0][1]; 
echo "</h2>";
tak mi to nespracuje nič pred značkou <h2>, tzn. nevypíše mi nadpis zo zadaného súboru, ale do výstupu PHP napíše celý kód, spracujú sa však iba HTML značky, iné echá sa nespracujú...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0