Задача:
Нужно загрузить 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) Иванушка написал(а):
а я понял в чем ты ошибся!
uft8
Все работает, спасибо!
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) Иванушка написал(а):
В браузере я вижу русские слова, все шикарно, но когда я открываю исходный код странички
вижу подобнае: Метал
Как это исправить?
вижу подобнае: Метал
Как это исправить?
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"?>
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 ночи на вопросы новичков!
Умные дяди не такие задроты, чтобы сидеть целыми днями и отвечать в выходной день в 12 ночи на вопросы новичков!
Спустя 7 часов, 5 минут, 29 секунд (6.03.2011 - 09:41) alex12060 написал(а):
Иванушка
Я воистину кланяюсь тебе, о мудрейший)
Я воистину кланяюсь тебе, о мудрейший)