| |
|
|
| | при создании XML средствами PHP и чтении этого XML Flash'ем последний перестает
понимать HTML-тэги. поле динамическое. стоит флажок "Разбирать как HTML", текст к
полю подключается методом htmlText, перед этим стоит команда поле.html = true. вообщем,
все как и было раньше. проблема в том, что созданный вручную XML с теми же тэгами
или просто строка, подставленная вместа нода как знaчение динамического поля, в ролике
выводится нормально - с учетом форматирования тэгами. но как только XML создает PHP
(текст тот же, тэги те же, кодировка та же долбаная UTF-8) - тэги выводятся как < и т.д.
и в базе и в XML техт виден с нормальными тэгами (<>), но если вывести текст трейсом, то
вместо скобок - < и > тэги в XML расположены в CDATA. и раньше так было (когда XML
создавался вручную) и все нормально читалось. всю голову уже сломала, что делать??? | |
| |
|
|
| |
|
|
| |
для: elenaki
(08.01.2008 в 11:48)
| | | Может приведете часть скрипта ПХП? | |
| |
|
|
| |
|
|
| |
для: Drago
(08.01.2008 в 13:37)
| | |
$sql = "INSERT INTO ".$db_prefix."site_content VALUES (
Null,
'".$_POST["lang"]."',
'".$_POST["menu_item"]."',
'".addslashes($_POST["page_title"])."',
'".addslashes($_POST["field"])."'
)";
// run SQL
$result = mysql_query($sql) or die(mysql_error());
/// create XML
$new_xml= '<?xml version="1.0" encoding="utf-8"?><content>';
// mysql_query("SET NAMES greek"); // esli ybrat' comm - vivodit ???????
$page_query = mysql_query("select * from ".$db_prefix."site_content where lang='".$_POST["lang"]."' and menu_item=".$_POST["menu_item"]) or die(mysql_error());
$page = mysql_fetch_array($page_query);
$page_title = iconv("windows-1253", "UTF-8", stripslashes($page['page_title']));
$page_text = iconv("windows-1253", "UTF-8", stripslashes($page['page_text']));
$menu_item = $page['menu_item'];
$new_xml .= "<page nomer='".$menu_item."' titlos='".$page_title."'><![CDATA[".$page_text."]]>";
$new_xml .= "</page>";
$new_xml .= "</content>";
if ($file=fopen("../../".$_POST["menu_item"]."_content_".$_POST["lang"].".xml","w"))
{
fputs ($file, $new_xml);
fclose($file);
}
|
a TyT XML:
<?xml version="1.0" encoding="utf-8"?><content><page nomer='1' titlos='ψωβδχσφβσδ'><![CDATA[㰊佂奄켾쾃캆₳럎닎듎
蛏돎뷎럎츠쾴캆캽㲾呓
佒䝎‾듎蛏돎뷎⼼呓佒
䝎‾듎蛏돎뷎듎蛏㰠䵅
츾쾴캆캾₽듎돎럎츠캴
캳㲷䔯㹍츠쾴岆츢쾴쾆
캉₲듎蛏닎돎츠쾴쾃캆
캳₲≜⼼佂奄>]]></page></content>
|
в базе при этом сохраняется все в греческой кодировке и я вижу текст в MySQL-Front.
в XML вижу в греческой кодировке только название, а текст, который в CDATA - квадратиками.
Флаш эти квадратики выводит как греческий текст, но и тэги выводит вместо того, чтобы
их выполнить (в трейсе тэги выводит как < и >)
вот, что выводит Flash в ролике и в трейсе | |
| |
|
|
| |
|
|
| |
для: elenaki
(08.01.2008 в 13:49)
| | | Вы уверены что текст в CDATA в греческой кодировке? Посмотрите на коды символов. Больше на китайский похоже.
Я так понял, ваши теги как раз в этом тексте? | |
| |
|
|
| |
|
|
| |
для: Drago
(08.01.2008 в 18:44)
| | | а как на них посмотреть? Дрим показывает квадратики, в форуме вылезли какие-то коды, но во Флаше-то - греческий! когда создавала XML руками, Дрим показывал текст в читабельном виде. теперь только titlos можно прочитать в Дриме. дело в том, что текст создается админом в WYSIWYG'e, в то время как название - обычное текстовое поле. я уже и редактор другой прикрутила, думала, может, он так символы корежит... | |
| |
|
|
| |
|
|
| |
для: elenaki
(08.01.2008 в 18:53)
| | | На числовые идентификаторы символов посмотрите.
Вот к примеру, в заголовке коды символов в диапазоне 946 - 969. В то время как в остальном тексте, в диапазоне 8254 - 53172. | |
| |
|
|
| |
|
|
| |
для: Drago
(08.01.2008 в 19:02)
| | | это я заметила. переконверитровала. получила иероглифы. а откуда Флаш берет греческий?!?!?! | |
| |
|
|
| |
|
|
| |
для: elenaki
(08.01.2008 в 19:03)
| | | Ну, как видно, ничего хорошего. :)
Я не знаю. Проверьте свои визуальные редакторы, в какой кодировке они сохраняют данные. | |
| |
|
|
| |
|
|
| |
для: Drago
(08.01.2008 в 19:22)
| | | редакторы сохраняют текст в базу. в базе я тексты вижу нормально. кодировка в базе - "greek". вывод из базы в админе нормально показывает тексты. в XML запись идет после вывода из базы. так что редактор ни при чем. а вот функция iconv(), применяемая и к титлу и к тексту, работает только для титла, а текст не конвертирует. чертовщина какая-то... | |
| |
|
|
| |
|
|
| |
для: elenaki
(08.01.2008 в 19:28)
| | | Ну вот для эксперемента, попробуйте вместо своего WYSIWYG'а поставить обычное поле textarea. И добавить какой-нибудь текст. | |
| |
|
|
| |
|
|
| |
для: Drago
(08.01.2008 в 19:37)
| | | ладно. завтра. тут у меня нет ни скрипта ни базы... | |
| |
|
|
| |
|
|
| |
для: elenaki
(08.01.2008 в 11:48)
| | | У вас xml на 2х языках - китайский и греческий | |
| |
|
|
| |
|
|
| |
для: mihdan
(09.01.2008 в 10:38)
| | | на одном.
проблема в CDATA. эта команда автоматически переводит символы скобок и
амперсанд в их коды... я сделала текстареа вместо окна редактора - результат тот же.
==========================================================================
CDATA в XML
В XML документах фрагмент помещённый внутрь CDATA это часть содержания элемента помеченная для парсера, что она содержит только символьные данные, не разметку. CDATA — это просто альтернативный синтаксис для отображения символьных данных, нет никакой смысловой разницы между символьными данными, которые объявлены как CDATA и символьными данным которые объявлены в обычном синтаксисе и где «<» и «&» будут представлены как «<» и «&», соответственно. | |
| |
|
|
| |
|
|
| |
для: elenaki
(09.01.2008 в 10:46)
| | | < < less than
> > greater than
& & ampersand
' ' apostrophe
" " quotation mark
их всего 5, этих запрещенных символов. наверно, надо во Флаше менять их. странно, никак
не могу добиться, чтобы Дрим показывал данные в CDATA в читабельном виде. но ведь
Flash их как-то понимает? черт бы побрал эту utf8! у меня какой-то кривой Дрим! сейчас открыла xml в блокноте и там видно текст! а Дрим рисует квадратики... хотя в свойствах страницы utf | |
| |
|
|
| |
|
|
| |
для: elenaki
(09.01.2008 в 11:03)
| | | нашла пример загрузки CDATA во Flash. в аттаче. Дрим и в нем не показывает поле CDATA.
открываю в блокноте, добавляю руками свой текст с разметкой - Флаш берет! вставляю
текст из примера в свой xml - Флаш не берет! я счас свихнусь... | |
| |
|
|
| |
|
|
| |
для: elenaki
(09.01.2008 в 11:18)
| | | в дриме - Preferences/ New Document кодировка по умолчанию какая стоит? | |
| |
|
|
| |
|
|
| |
для: AlexSol
(09.01.2008 в 11:30)
| | | зачем new document? я ведь открываю существующий. сейчас читает! ничего не меняла в
Дриме.
так. переписала во Флаше, чтобы читалось nodeValue, а не просто childNodes (хотя ведь и так читалось) и ... текст появляется! и даже отформатированный! теперь надо подправить редактор немножко, а то он кавычки в атрибутах не ставит и XML не читается. | |
| |
|
|