Oznámení
dilema s rss
před 14 lety
- juneau
- Člen | 166
Ve svem systemu ukladam texty jak v Texy! syntaxi (pro pozdejsi editace), tak ve vygenerovanem html.
A mam dilema s tim, ktery z techto textu zahrnout do rss exportu. Nechce
se mi exportovat syntaxi, ale i v html kodu zustane po
strip_tags()
spousta html entit… ktere bych taky rad odstranil,
ale nevim, co vsechno je prevadeno.
Mohl by jsi mi napsat svuj nazor? Pripadne poradit, jak nahradit vsechny ty
&xyz;
entity? (Spise co vsechno texy! generuje)
před 14 lety
- David Grudl
- Nette Core | 6806
generují se v TexyLongWordsModule: ­ a
(lze
nahradit za nekonfliktní ­ a  
).
v TexyQuickCorrectModule:
– ‚ ‘ „ “
(podle
nastavení $doubleQuotes apod.), dále
™, ®, ©
. Ostatní entity jsou
bezpečné.
Všechny slovní entity asi změním na &#x .. ; bude to bez problému.
No a pak ještě všechny entity, které zadá pisatel ručně :-)
Ale k otázce: posílal bych rozhodně vygenerovaný kód.
(pozn.: platí pouze pro Texy 1.x)
před 14 lety
- David Grudl
- Nette Core | 6806
doplnění: tak z Texy jsem pojmenované entity odstranil,
teď generuje jen číselné &#xxx;
. (download). Ale stejně
musíš vytvořit strtr() filtr, který převede entity zadané uživatelem na
číselné obdoby, viz příklad níže:
čisté XML zná totiž jen
< > & " '
. A protože
apostrof '
nezná IE, je dobré převést i jej
na '
function numericEntities($s) { // by dgx
return strtr(
$s,
array (
'§'=>'§',
'©'=>'©',
'¬'=>'¬',
'­'=>'­',
'®'=>'®',
'™'=>'™',
'°'=>'°',
'µ'=>'µ',
'–'=>'–',
'—'=>'—',
'‚'=>'‚',
'‘'=>'‘',
'„'=>'„',
'“'=>'“',
'…'=>'…',
'‰'=>'‰',
'€'=>'€',
' '=>' ',
'¡'=>'¡',
'¢'=>'¢',
'£'=>'£',
'¤'=>'¤',
'¥'=>'¥',
'¦'=>'¦',
'§'=>'§',
'¨'=>'¨',
'©'=>'©',
'ª'=>'ª',
'«'=>'«',
'¬'=>'¬',
'­'=>'­',
'®'=>'®',
'¯'=>'¯',
'°'=>'°',
'±'=>'±',
'²'=>'²',
'³'=>'³',
'´'=>'´',
'µ'=>'µ',
'¶'=>'¶',
'·'=>'·',
'¸'=>'¸',
'¹'=>'¹',
'º'=>'º',
'»'=>'»',
'¼'=>'¼',
'½'=>'½',
'¾'=>'¾',
'¿'=>'¿',
'À'=>'À',
'Á'=>'Á',
'Â'=>'Â',
'Ã'=>'Ã',
'Ä'=>'Ä',
'Å'=>'Å',
'Æ'=>'Æ',
'Ç'=>'Ç',
'È'=>'È',
'É'=>'É',
'Ê'=>'Ê',
'Ë'=>'Ë',
'Ì'=>'Ì',
'Í'=>'Í',
'Î'=>'Î',
'Ï'=>'Ï',
'Ð'=>'Ð',
'Ñ'=>'Ñ',
'Ò'=>'Ò',
'Ó'=>'Ó',
'Ô'=>'Ô',
'Õ'=>'Õ',
'Ö'=>'Ö',
'×'=>'×',
'Ø'=>'Ø',
'Ù'=>'Ù',
'Ú'=>'Ú',
'Û'=>'Û',
'Ü'=>'Ü',
'Ý'=>'Ý',
'Þ'=>'Þ',
'ß'=>'ß',
'à'=>'à',
'á'=>'á',
'â'=>'â',
'ã'=>'ã',
'ä'=>'ä',
'å'=>'å',
'æ'=>'æ',
'ç'=>'ç',
'è'=>'è',
'é'=>'é',
'ê'=>'ê',
'ë'=>'ë',
'ì'=>'ì',
'í'=>'í',
'î'=>'î',
'ï'=>'ï',
'ð'=>'ð',
'ñ'=>'ñ',
'ò'=>'ò',
'ó'=>'ó',
'ô'=>'ô',
'õ'=>'õ',
'ö'=>'ö',
'÷'=>'÷',
'ø'=>'ø',
'ù'=>'ù',
'ú'=>'ú',
'û'=>'û',
'ü'=>'ü',
'ý'=>'ý',
'þ'=>'þ',
'ÿ'=>'ÿ',
));
}
Někdy je dobré (kvůli čitelnosti ve slabších čtečkách) změnit typografické uvozovky na normální, pevnou mezeru na obyčejnou a pomlčky na spojovníky, např:
...
' ' => ' ',
'„'=> '"',
'“'=> '"',
'‚'=> '\'',
'‘'=> '\'',
'–'=> '-',
'—'=> '-',
...