Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudações pessoal , venho por meio desta tentar mais uma solução para um outro problema que seria o seguinte:
Tenho um site de imobiliária e dentro dele tenho diversos arquivos XML que se integram a cada portal de anúncios de imóveis, sendo que meu sistema exporta todos os meus anúncios através dele , tenho integração em mais de 20 portais. até uns dias atrás os meus XMLS estava funcionando normalmente, e depois disso, alguns portais não estão conseguindo mais importar meus anúncios pelo meu XML e achando que era erro meu ou alguma função obsoleta dentro do meu XML usando o php, sendo que o meu XML é dinâmico, e percebi que eu uso funções de acordo com os padrões do php atual, e vi que alguns portais ao tentarem importar meus anuncios geram esse erro como exemplo abaixo:
**( ! ) Warning: DOMDocument::load(http://www.jcimoveisbrasil.com/xml_achou_mudou.xml): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\html5\teste_DOM.php on line 16 **
E notei que o erro vem do meu servidor (infelizmente UOL HOST) por bloquear a diretiva Allow url fopen, eles alegam que nem tentando habilitá-la pelo htaccsess é possível, por que eles dizem que deixam um brecha para cod injection , e bloquearam no servidor deles, mas se eu contratar uma hospedagem CLOUD que eles oferecem e que é bem mais cara, eu conseguiria habilitá-la ... Eu estou pegando raiva dessa hospedagem por causa disso, e estes portais que estão com problemas para importar meu dados no XML, eles usam o método DOM para se comunicar com o XML , e a bendita uol bloqueia esta função.
O que eu queria saber é, ou se existe uma função nativa do php que poderia contornar isso , porque senão eu teria que cancelar meu plano de hospedagem da uol e contratar uma outra que não bloqueie a opção allow url fopen do php, tentei com CURL, mas vi que não tem nada a ver, porque quem teria que mudar a programação seria o portal, e os outros sites que eles tem como parceria recebem o XML normalmente.
Este seria meu XML que esta dentro do meu site:
http://www.jcimoveisbrasil.com/xml_achou_mudou.xml
Vocês acessando a url via navegador, ela funciona normalmente , mas usando esta função que postei abaixo, parecida com a que os portais usam para se comunicar com a URL seria mais ou menos essa que desenvolvi :
<?php
ini_set('display_errors',1);
ini_set('display_startup_erros',1);
error_reporting(E_ALL);
include_once('config.php');
include_once('tags_integrado.php');
$hoje = date('Y-m-d');
?>
<?php
// try this html listing example for all nodes / includes a few getElementsByTagName options:
$doc = new DOMDocument();
$doc->load( 'http://www.jcimoveisbrasil.com/xml_achou_mudou.xml' );
$classificados = $doc->getElementsByTagName( "imovel" );
foreach( $classificados as $imovel ){
$codigoreferencia = $imovel->getElementsByTagName( "codigoreferencia" );
$codigoreferencia = $codigoreferencia->item(0)->nodeValue;
$finalidade = $imovel->getElementsByTagName( "finalidade" );
$finalidade = $finalidade->item(0)->nodeValue;
$titulo= $imovel->getElementsByTagName( "titulo" );
$titulo = $titulo->item(0)->nodeValue;
$descricao = $imovel->getElementsByTagName( "descricao" );
$descricao = $descricao->item(0)->nodeValue;
$urlimovel = $imovel->getElementsByTagName( "urlimovel" );
$urlimovel = $urlimovel->item(0)->nodeValue;
$dormitorios = $imovel->getElementsByTagName( "dormitorios" );
$dormitorios = $dormitorios->item(0)->nodeValue;
$banheiros = $imovel->getElementsByTagName( "banheiros" );
$banheiros = $banheiros->item(0)->nodeValue;
$suites = $imovel->getElementsByTagName( "suites" );
$suites = $suites->item(0)->nodeValue;
$vagas = $imovel->getElementsByTagName( "vagas" );
$vagas = $vagas->item(0)->nodeValue;
$area = $imovel->getElementsByTagName( "area" );
$area = $area->item(0)->nodeValue;
$bairro = $imovel->getElementsByTagName( "bairro" );
$bairro = $bairro->item(0)->nodeValue;
$cidade = $imovel->getElementsByTagName( "cidade" );
$cidade = $cidade->item(0)->nodeValue;
$estado = $imovel->getElementsByTagName( "estado" );
$estado = $estado->item(0)->nodeValue;
$pais = $imovel->getElementsByTagName( "pais" );
$pais = $pais->item(0)->nodeValue;
$preco = $imovel->getElementsByTagName( "preco" );
$preco = $preco->item(0)->nodeValue;
$fotos = $imovel->getElementsByTagName( "fotos" );
$fotos = $fotos->item(0)->nodeValue;
$tipoanunciante = $imovel->getElementsByTagName( "tipoanunciante" );
$tipoanunciante = $tipoanunciante->item(0)->nodeValue;
$nomefantasia = $imovel->getElementsByTagName( "nomefantasia" );
$nomefantasia = $nomefantasia->item(0)->nodeValue;
$endereco = $imovel->getElementsByTagName( "endereco" );
$endereco = $endereco->item(0)->nodeValue;
$bairro = $imovel->getElementsByTagName( "bairro" );
$bairro = $bairro->item(0)->nodeValue;
$cidade = $imovel->getElementsByTagName( "cidade" );
$cidade = $cidade->item(0)->nodeValue;
$estado = $imovel->getElementsByTagName( "estado" );
$estado = $estado->item(0)->nodeValue;
$telefone = $imovel->getElementsByTagName( "telefone" );
$telefone = $telefone->item(0)->nodeValue;
$email = $imovel->getElementsByTagName( "email" );
$email = $email->item(0)->nodeValue;
$urlsite = $imovel->getElementsByTagName( "urlsite" );
$urlsite = $urlsite->item(0)->nodeValue;
$urllogo = $imovel->getElementsByTagName( "urllogo" );
$urllogo = $urllogo->item(0)->nodeValue;
echo"
CÓDIGO REFERÊNCIA: $codigoreferencia <br /><br />
URL: ".$urlimovel." <br /><br />
FINALIDADE: ".$finalidade." <br /><br />
TÍTULO ".$titulo." <br /><br />
DESCRIÇÃO: ".$descricao." <br /><br />
DORMITÓRIOS: ".$dormitorios." <br /><br />
BANHEIROS: ".$banheiros." <br /><br />
SUÍTES: ".$suites." <br /><br />
VAGAS: ".$vagas." <br /><br />
ÁREA: ".$area." <br /><br />
BAIRRO: ".$bairro." <br /><br />
CIDADE: ".$cidade." <br /><br />
ESTADO: ".$estado." <br /><br />
PAIS: ".$pais." <br /><br />
PREÇO: ".$preco." <br /><br />
FOTOS: ".$fotos."<br /> <br /><br />
TIPO DE ANUNCIANTE: ".$tipoanunciante." <br /><br />
NOME FANTASIA: ".$nomefantasia." <br /><br />
ENDEREÇO : ".$endereco." <br /><br />
BAIRRO: ".$bairro." <br /><br />
CIDADE: ".$cidade." <br /><br />
ESTADO: ".$estado." <br /><br />
TELEFONE: ".$telefone." <br /><br />
EMAIL: ".$email." <br /><br />
URL-SITE: ".$urlsite." <br /><br />
URL_LOGO: ".$urllogo." <br /><br />
";
}?>
_______________________________________________________________________________________________________________________________________<br /><br />
";
}
?>
E usando essa função localmente para se comunicar com a URL gera o mesmo erro:
**( ! ) Warning: DOMDocument::load(http://www.jcimoveisbrasil.com/xml_achou_mudou.xml): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\html5\teste_DOM.php on line 16 **
E tentando acessar remotamente , SEM CHANCE , dá tela branca , como se não houvesse erros ou nenhuma echo presente para imprimir os dados na tela..
Desculpem pelo texto longo galera, mas foi para melhor entendimento.. Obrigado.
Carregando comentários...