Oznámení
Provoz fóra byl ukončen
Fshl
Upozornění: Tohle vlákno je hodně staré.
před 14 lety
- Beda
- Člen | 3
Zdravím, pokouším se zprovoznit zvýrazňování syntaxe pomocí FSHL, ale nedaří se mi.
Stránky mám ve win-1250
// vložíme knihovnu
require_once('texy-5rc/texy/texy.php');
include_once('texy-5rc/fshl/fshl.php');
// vytvoříme objekt
$texy = &new Texy();
$texy->utf = true;
function myUserFunc(&$element) {
$lang = strtoupper($element->lang);
if ($lang == 'JAVASCRIPT') $lang = 'JS';
if (!in_array(
$lang,
array('CPP', 'CSS', 'HTML', 'JAVA', 'PHP', 'JS', 'SQL'))
) return;
// $element->tag = code;
$parser = new fshlParser('HTML', P_TAB_INDENT);
$element->setContent($parser->highlightString($lang, $element->content), true);
}
// set user callback function for /-- code blocks
$texy->blockModule->codeHandler = 'myUserFunc';
// a zpracujeme vstupní text
$x = stripslashes($_POST['prispevek']);
$text = $texy->process($x);
todle mně vygeneruje správnej kód ale v ISO kódování
když zaměním
$parser = new fshlParser('HTML', P_TAB_INDENT);
za
$parser = new fshlParser('HTML_UTF8', P_TAB_INDENT);
vygeneruje mi to kód se správně zobrazenejma českejma znakama, ale chybí ukončovací značky
</code></pre>
a není tam ani
<!-- generated by Texy! -->
Můžete mi prosím někdo poradit co mam špatně?
před 14 lety
- Beda
- Člen | 3
Asi bude problém s Fshl…
Uvnitř jsem asi našel ten kámen úrazu:
$word = htmlEntities($word);
Když se nastaví
$word = htmlEntities($word, ENT_COMPAT, 'ISO-8859-1');
nebo
$word = htmlEntities($word, ENT_COMPAT, 'cp1251');
je vše v pořádku (až na české znaky, cp1250 to neumí), ale při
$word = htmlEntities($word, ENT_COMPAT, 'UTF8');
chybějí ve vygenerovaném kódu ukončovací značky i podpis Texy!
</code></pre> <!-- generated by Texy! -->
Jsem z toho ještě zmatenější než předtím.
před 13 lety
- David Grudl
- Nette Core | 6806
musí tam být UTF-8, tedy s pomlčkou