| Autor | Zpráva | ||
|---|---|---|---|
| Fisir Profil |
#1 · Zasláno: 1. 9. 2014, 19:06:44
Ahoj, obracím se na vás po týdnu neúspěšného zkoušení všeho možného. Načtu si řetězec do DOMDocumentu:
$dom = new DOMDocument();
$dom->encoding = 'UTF-8';
$dom->loadHTML('<?xml encoding="UTF-8"><div id="container">'.$text.'</div>', LIBXML_NOENT);$parsed = $dom->saveHTML(); html_entity_decode() použít nemůžu a nahrazování pomocí str_replace() moc nechci, protože nevím, jaké všechny znaky se mohou v textu objevit. Na Stackoverflow zatím nikdo neví, ví nějaká československá hlava?
ěščřžýáíé vrací ěščřžýáíé.
|
||
| Jan Tvrdík Profil |
Fisir:
Co takhle loadXml?Případě pokud se bavíme o Automatické vytvoření odstavců, tak řešením je prostě dát do HTML meta tag s kódováním: <meta http-equiv="content-type" content="text/html;charset=utf-8"> |
||
| Tori Profil |
#3 · Zasláno: 2. 9. 2014, 07:50:10
Fisir:
„nevím, jaké všechny znaky se mohou v textu objevit.“ Funkce get_html_translation_table nevyhovuje? |
||
| Fisir Profil |
#4 · Zasláno: 2. 9. 2014, 16:59:34
Reaguji na Jana Tvrdíka:
loadXML() mi vstupní text nesežere (není well-formed).
„ <meta http-equiv="content-type" content="text/html;charset=utf-8">“
To snad ne. Zkoušel jsem opravdu spoustu deklarací, a žádná jiná, která definuje kódování nezabrala. Díky moc! |
||
| Jan Tvrdík Profil |
#5 · Zasláno: 2. 9. 2014, 17:23:10
Fisir:
Dneska jsem si s tím hrál a zjistil, že s novým PHP* mi funguje i <meta charset="utf-8">. A dokonce záleží i na tom, jestli voláš saveHTML s parametrem nebo bez. Zkus si schválně u sebe:
$doc = new DOMDocument();
$doc->loadHTML('<meta http-equiv="content-type" content="text/html;charset=utf-8">třešně');
echo $doc->saveHTML(), "\n\n";
$doc = new DOMDocument();
$doc->loadHTML('<meta charset="utf-8">třešně');
echo $doc->saveHTML(), "\n\n";
$doc = new DOMDocument();
$doc->loadHTML('<meta http-equiv="content-type" content="text/html;charset=utf-8">třešně');
echo $doc->saveHTML($doc->getElementsByTagName('body')->item(0)), "\n\n";
$doc = new DOMDocument();
$doc->loadHTML('<meta charset="utf-8">třešně');
echo $doc->saveHTML($doc->getElementsByTagName('body')->item(0)), "\n\n";*Ve skutečnosti nezáleží na verzi PHP, ale na verzi libxml se kterou bylo PHP zkompilováno. |
||
|
Časová prodleva: 11 let
|
|||
0