• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

HecKel

SimpleXML Encoding!

5 mensagens neste tópico

Boas pessoal!

Estou aqui com um problema que não estou a conseguir resolver (duh), tenho o seguinte ficheiro php:

menus.php:

<?php
$xmlstr = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<menus>
<top>
  		<item active='false' id='0'>
		<name>teste</name>
		<url>/url.php</url>
	</item>
	<item active='true' id='1'>
		<name>Contactos</name>
		<url>/contactos.php</url>
	</item>
</top>
<left>
	<item active='true' id='2'>
		<name>grupo</name>
		<url>/grupo.php</url>
		<submenus>
			<item active='false' id='20'>
				<name>direcção</name>
				<url>/grupo/direccao.php</url>
			</item>
		</submenus>
	</item>
</left>
</menus>
XML;
?>

Isto acho que basta

index.php:

<?php
include 'menus.php';

$xml = new SimpleXMLElement($xmlstr);
$var = '3';
foreach ($xml->top[0]->item as $item) {
if ($item['active']=='true') {
	echo '<a href="'. $item->url .'">'. $item->name .'</a><br />';
}
}

foreach ($xml->left[0]->item as $item) {
if ($item['active']=='true') {
	echo '<a href="'. $item->url .'">'. $item->name .'</a><br />';
	if($item['id'] == $var) {
		foreach ($item->submenus[0]->item as $subitem) {
			if ($subitem['active']=='true') {
				echo 'submenu: <a href="'. $subitem->url .'">'. $subitem->name .'</a><br />';
			}
		}
	}
}
}
?>

Aconteceu que a palavra direcção aparece sempre como direcção.

Ambos os ficheiros estão em UTF8, portanto também não vejo como o problema pode ser daí. Ideias?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Resolvido, n tinha colocado o encoding em html.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

thanks fnds :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para garantir que o browser mete as cenas com o encoding correcto, usa antes a função header() do php, é mais fiável que o markup.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para garantir que o browser mete as cenas com o encoding correcto, usa antes a função header() do php, é mais fiável que o markup.

Exacto, não me lembrei disso! Assim até podes cagar no que envias para o browser.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora