[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кодировка в дом
Иванушка
Здрасти уважаемые!
Задача:
Нужно загрузить xml файл, и вставить в элементы с определенным ид нужный текст.

Звучит просто, но с русскими буквами происходят какието чудеса :huh:
Как я не крутил скодировками... фига:


function getElementById($id,$dom)
{
$xpath = new DOMXPath( $dom);
return $xpath->query("//*[@id='$id']")->item(0);
}
mysql_connect( "localhost", "root", "");
mysql_select_db( "datbas");

$r = mysql_query( "SELECT name FROM `table` where id = '9'");


$doc = new DomDocument( "1.0","UTF-8");

$doc->loadXML( "
<html>
<head>
<title id='title'>
</title>
</head>
<body id='body'>
</body>
</html>
"
);

$title = getElementById("title",$doc);
$title->appendChild($doc->createTextNode( "topic"));

$tabs = array( "UTF-8", "ASCII", "Windows-1252", "ISO-8859-15", "ISO-8859-1", "ISO-8859-6", "CP1256");

$body = getElementById( "body", $doc);
foreach( $tabs as $tab1) foreach( $tabs as $tab2)
{
if( strcmp( $tab1, $tab2) !== 0 )
{
$string = iconv( $tab1, $tab2, mysql_result( $r, "name"));
$body->appendChild( $doc->createElement( "div", " [$tab1] => [$tab2]: $string"));
}
}


echo $doc->saveXml();


Скажите пожалуйста, умные дяди, как правильно сделать?
Или предложите как можно организовать вывод иначе.



Спустя 6 минут, 19 секунд (5.03.2011 - 23:28) alex12060 написал(а):

mysql_query("SET NAMES utf-8");

Спустя 5 минут, 8 секунд (5.03.2011 - 23:33) Guest написал(а):
Неработает :o
function getElementById($id,$dom)
{
$xpath = new DOMXPath( $dom);
return $xpath->query("//*[@id='$id']")->item(0);
}
mysql_connect( "localhost", "root", "");
mysql_select_db( "r2doll");

$r = mysql_query( "SELECT name FROM `x_armours` where id = '9'");


$doc = new DomDocument( "1.0","UTF-8");

$doc->loadXML( "
<html>
<head>
<title id='title'>
</title>
</head>
<body id='body'>
</body>
</html>
"
);

$title = getElementById("title",$doc);
$title->appendChild($doc->createTextNode( "topic"));

mysql_query("SET NAMES utf-8");
$body = getElementById( "body", $doc);
$body->appendChild(
$doc->createElement( "div", mysql_result( $r, "name"))
);


echo $doc->saveXml();

Спустя 3 минуты, 30 секунд (5.03.2011 - 23:37) alex12060 написал(а):


header('Content-Type: text/html; charset=utf-8');

function getElementById($id,$dom)
{
$xpath = new DOMXPath( $dom);
return $xpath->query("//*[@id='$id']")->item(0);
}
mysql_connect( "localhost", "root", "");
mysql_select_db( "r2doll");
mysql_query("SET NAMES utf-8");

$r = mysql_query( "SELECT name FROM `x_armours` where id = '9'");


$doc = new DomDocument( "1.0","UTF-8");

$doc->loadXML( "
<html>
<head>
<title id='title'>
</title>
</head>
<body id='body'>
</body>
</html>
"
);

$title = getElementById("title",$doc);
$title->appendChild($doc->createTextNode( "topic"));

$body = getElementById( "body", $doc);
$body->appendChild(
$doc->createElement( "div", mysql_result( $r, "name"))
);


echo $doc->saveXml();

Спустя 7 минут, 42 секунды (5.03.2011 - 23:44) Иванушка написал(а):
И так тоже не работает

Спустя 3 минуты, 30 секунд (5.03.2011 - 23:48) Иванушка написал(а):
а я понял в чем ты ошибся!

mysql_query("SET NAMES utf8");


uft8

Все работает, спасибо!

header('Content-Type: text/html; charset=utf-8');

function getElementById($id,$dom)
{
$xpath = new DOMXPath( $dom);
return $xpath->query("//*[@id='$id']")->item(0);
}
mysql_connect( "localhost", "root", "");
mysql_select_db( "db");
mysql_query("SET NAMES utf8");



$doc = new DomDocument( "1.0","UTF-8");

$doc->loadXML( "
<html>
<head>
<title id='title'>
</title>
</head>
<body id='body'>
</body>
</html>
"
);

$title = getElementById("title",$doc);
$title->appendChild($doc->createTextNode( "topic"));

$r = mysql_query( "SELECT name FROM `table` where id = '9'");
$body = getElementById( "body", $doc);
$body->appendChild(
$doc->createElement( "div", mysql_result( $r, "name"))
);


echo $doc->saveXml();

Спустя 22 минуты (6.03.2011 - 00:10) Иванушка написал(а):
В браузере я вижу русские слова, все шикарно, но когда я открываю исходный код странички
вижу подобнае: &#x41C;&#x435;&#x442;&#x430;&#x43B;

Как это исправить?


header('Content-Type: text/html; charset=UTF-8');

function getElementById($id,$dom)
{
$xpath = new DOMXPath( $dom);
return $xpath->query("//*[@id='$id']")->item(0);
}
mysql_connect( "localhost", "root", "");
mysql_select_db( "db");
mysql_query("SET NAMES utf8");



$doc = new DomDocument( "1.0","UTF-8");

$doc->load( "doc.xml");

$title = getElementById("title",$doc);
$title->appendChild($doc->createTextNode( "topic"));

$r = mysql_query( "SELECT name FROM `table` where id = '1'");
$body = getElementById( "body", $doc);
$body->appendChild(
$doc->createElement( "div", mysql_result($r,"name") )
);


echo $doc->saveXml();

Спустя 35 минут, 40 секунд (6.03.2011 - 00:45) Иванушка написал(а):
Сам задал вопрос, и сам же отвечаю))
Не по зубам вам задачка, умные дяди)
дело тут в строчке <?xml version="1.0" encoding="UTF-8"?>

doc.xml

<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title
id='title'>
</title>
</head>
<body
id='body'>
</body>
</html>





function getElementById($id,$dom)
{
$xpath = new DOMXPath( $dom);
return $xpath->query("//*[@id='$id']")->item(0);
}
mysql_connect( "localhost", "root", "");
mysql_select_db( "db");



$doc = new DomDocument();


$doc->load( "doc.xml");

$title = getElementById("title",$doc);
$title->appendChild($doc->createTextNode( "topic"));

$r = mysql_query( "SELECT name FROM `table` where id = '5'");
$body = getElementById( "body", $doc);
$body->appendChild(
$doc->createElement( "div", mysql_result($r,"name") )
);


echo $doc->saveXml();

Спустя 1 час, 50 минут, 19 секунд (6.03.2011 - 02:36) inpost написал(а):
Иванушка
Умные дяди не такие задроты, чтобы сидеть целыми днями и отвечать в выходной день в 12 ночи на вопросы новичков!

Спустя 7 часов, 5 минут, 29 секунд (6.03.2011 - 09:41) alex12060 написал(а):
Иванушка

Я воистину кланяюсь тебе, о мудрейший)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.