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: 10 let
|
0