Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com este problema e estou sem saber o que resolver.
tenho uma função que preencher o xml para mim, porem quanto tento visualizar no chrome por exemplo ele me retorna a mensagem Below is a rendering of the page up to the first error e em baixo o conteudo do meu xml mas em forma de texto normal
quando vejo o codigo fonte da pagina eu consigo ver o xml formatado normal, o que pode ser isso?
Tentando analisar percebi que nesta linha 67 o conteudo é <Title>Copy®</Title> este $reg deveria ser o ® "simbolo de R". meu codigo fonte que gera o xml ja tem a codificação UTF-8, mas n ta resolvendo.
se gerar o xml de um arquvo que nao tenha este simbolo, gera perfeito
This page contains the following errors:error on line 67 at column 36: Entity 'reg' not definedBelow is a rendering of the page up to the first error. Below is a rendering of the page up to the first errofunction output_pretty_xml($mixed, $xml = false) {
este é a parte do codigo que monta o xml
if($xml === false) {
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><xbox status="' . $mixed['status'] . '" version="' . $mixed['version'] . '" />');
}
foreach($mixed as $key => $value) {
if(is_numeric($key)) {
$key = rtrim($xml->getName(), 's');
}
if(is_array($value)) {
output_pretty_xml($value, $xml->addChild($key));
} else {
$xml->addChild($key, $value);
}
}
$dom = dom_import_simplexml($xml)->ownerDocument;
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
return preg_replace_callback('/^( +)</m', function($a) {
return str_repeat(' ', intval(strlen($a[1]) / 2) * 4) . "<";
}, $dom->saveXML());
}
ou então uma forma de tratar isso na escrita, sera que tem como?
Eu uso isso abaixo para escrever.
$nome['Perfil'][$i]['Titulo'] = $this->clean($nome['Name']);
se for mais facil poderia rancar estes caracteres e deixar texto puro, teria como fazer?
agora esta me retornando este erro
<b>Warning</b>: SimpleXMLElement::addChild() <a href='[simplexmlelement.addchild'>simplexmlelement.addchild</a>]: unterminated entity reference D: Daggerdale in
a linha problema é a 525 justo nesta parte, mesmo codigo acima!
>
if(is_array($value)) { output_pretty_xml($value, $xml->addChild($key));} else { $xml->addChild($key, $value);}
aproveitando, tem como ignorar estes erros no xml?
porque qualquer erro que de, nao consegue gerar o xml (ele fica presso so no fonte)
tipo um report(0); existe?
Já tentou utilizar os caracteres diretamente, sem converter em entidade?
Você pode também apelar pro CDATA e englobar o seu texto em uma string não parseada.
eu coloquei o @ na frente da linha, aparentemente resolveu o problema.
só que num sei se o que resolveu tbm foi atualizar o php de 3 para 4
so que agora esta retornando este erro
Warning: Unknown: open(/var/lib/php53/session/sess_a058ae8867434d792e1a5932f17fcd22, O_RDWR) failed: Permission denied (13) in Unknownon line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php53/session) inUnknown on line 0
Na verdade, @ não resolve problema nenhum, apenas varre para baixo do tapete.
E o problema que você está tendo é de permissão negada. Tenta verificar se o usuário que está rodando o php tem permissão para escrever no diretório de sessões (/var/lib/php53/session/).
>
Na verdade, @ não resolve problema nenhum, apenas varre para baixo do tapete.
E o problema que você está tendo é de permissão negada. Tenta verificar se o usuário que está rodando o php tem permissão para escrever no diretório de sessões (/var/lib/php53/session/).
Como posso verificar esta informacao e se cason esteja com permissao como alterar? E usuario do banco ou o usuario q ta logado mo site? Porque ta parecendo isso quando usuario tenta criar um topico no dite
Nem um, nem outro.
Nos sistemas nix, cada serviço é rodado por um usuário da máquina. No caso o PHP geralmente é rodado pelos usuários apache, php ou nobody*. Você precisa descobrir qual desses usuários está rodando o PHP.
Antes de mais nada, é interessante verificar se esse diretório (/var/lib/php53/session/) realmente existe. Caso não exista, é necessário criar.
Caso exista, também há uma outra possibilidade, que deixaria teu sistema bastante inseguro, que é dar permissão total no diretório de sessões. Se for um servidor apenas de testes, pode ser a alternativa mais rápida.
chmod 0777 /var/lib/php53/session/
Se não é você que administra o servidor, abre um chamado no help desk e pede pro pessoal dar uma averiguada.
Acho que é isso.
Abraço.
>
Na verdade, @ não resolve problema nenhum, apenas varre para baixo do tapete.
E o problema que você está tendo é de permissão negada. Tenta verificar se o usuário que está rodando o php tem permissão para escrever no diretório de sessões (/var/lib/php53/session/).
Nem sei de quem foi a ideia de criar este diacho de @!
eu criei /var/lib/php53/session/ antes do public_html mas nao resolveu :(
sera que so criando a pasta resolveria? dei permissao nela tbm mas nada
Cara ele não está encontrando o &Reg; como uma entidade válida.
Adicionando uma entidade ao XML:
Cabeçalho do xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE minhasEntidades [
<!ENTITY Reg "®">]>