Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jeovane Carvalho

Fopen desabilitado Uol Host

Recommended Posts

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 />
";
}
//------------------------SEPARADOR----------------------------------//
?>

_______________________________________________________________________________________________________________________________________<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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Serra obrigado pela resposta, mas no meu caso seria o portal que teria que usar o curl para se comunicar e não eu correto..e outra coisa tem algum outro serviço de hospedagem que você me recomenda que use a diretiva allow url fopen habilitada, ou então têm alguma função que eu possa inserir dentro do meu XML que o sistema do portal que usa a função DOM consiga abrir a url do meu xml, ou não tem nada a ver isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A solução mais simples seria de fato usar cURL.

Olá Serra obrigado pela resposta, mas no meu caso seria o portal que teria que usar o curl para se comunicar e não eu correto..e outra coisa tem algum outro serviço de hospedagem que você me recomenda que use a diretiva allow url fopen habilitada, ou então têm alguma função que eu possa inserir dentro do meu XML que o sistema do portal que usa a função DOM consiga abrir a url do meu xml, ou não tem nada a ver isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Errado, quem ESTÁ REQUISITANDO deve usar cURL, para o portal (http://www.jcimoveisbrasil.com/xml_achou_mudou.xml), você usar fopen ou cURL, dá na mesma, no servidor chega apenas a requisição da página e o servidor devolve o XML. No caso, o cURL deve ser usado na página teste_DOM.php que ao que parece está no seu localhost....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Errado, quem ESTÁ REQUISITANDO deve usar cURL, para o portal (http://www.jcimoveisbrasil.com/xml_achou_mudou.xml), você usar fopen ou cURL, dá na mesma, no servidor chega apenas a requisição da página e o servidor devolve o XML. No caso, o cURL deve ser usado na página teste_DOM.php que ao que parece está no seu localhost....

Sim Serra até aí eu entendi, mas o portal seria o *achou mudou * e são eles que fazem a comunicação com meu site para importar meus anúncios http://www.jcimoveisbrasil.com/xml_achou_mudou.xml mas eu vou postar o XML em php que estou usando para os portais:

<?php
header('Content-type: application/xml');
include_once('config.php');
include_once('tags_integrado.php'); 

$hoje = date('Y-m-d');
?>
<classificados>
<language>Portuguese</language>
<imoveis>
<?php
/* MONTA CRITERIOS DE BUSCA */ 

$where='i.ativo ="1"';
$max=100000;$inicio=$max*$inicio;
$pgs=ceil($total/$max);
$sql=$MySQLi->query("SELECT i.id, i.foto_exibicao,i.foto_titulo,i.foto_descricao,i.mapa,i.latitude,i.longitude,i.cep,i.area_construida,
i.area_total,i.valor_condominio,i.valor_iptu,i.valor_prestacao,i.valor,i.quartos,i.suites,i.banheiros,i.garagem,i.codigo,i.data,i.msg,t.tipo_nome,n.tipo AS negocio,c.cidade,c.uf,b.bairro FROM imoveis i INNER JOIN negocio_tipo n ON(n.id = i.id_negocio_tipo)INNER JOIN imoveis_tipo t ON(t.id = i.id_tipo_imovel)
INNER JOIN cidades c ON (c.id = i.id_cidade)INNER JOIN bairros b ON (b.id = i.bairro)WHERE ".$where." ORDER BY id ASC LIMIT ".$inicio.",".$max."")or print(mysqli_error());while($linha= mysqli_fetch_array($sql)){
$id=$linha['id'];
$negocio=$linha['negocio'];
$dormitorios=$linha['quartos'];
$suites=$linha['suites'];
$banheiros=$linha['banheiros'];
$garagem=$linha['garagem'];
$area_construida=$linha['area_construida'];
$area_total=$linha['area_total'];
$msg=$linha['msg'];
$foto_titulo=$linha['foto_titulo'];
$foto_descricao=$linha['foto_descricao'];
$valor_condominio=$linha['valor_condominio'];
$valor_iptu=$linha['valor_iptu'];
$valor_prestacao=$linha['valor_prestacao'];
$foto_exibicao=$linha['foto_exibicao'];
$latitude=$linha['latitude'];
$longitude=$linha['longitude'];
$data=$linha['data'];
$tipos=$linha['tipo_nome'];
$tipo=$tipos;
$tipo=strtolower(str_replace(" ","-",strtr(utf8_decode(trim($tipo)),utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")));
$bairros=$linha['bairro'];
$bairro=$bairros;$bairro=strtolower( str_replace(" ","-",strtr(utf8_decode(trim($bairro)),utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")));$cidades=$linha['cidade'];
$cidade=$cidades;
$cidade=strtolower(str_replace(" ","-",strtr(utf8_decode(trim($cidade)),utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")));
$fotos=$linha['foto'];
$fotos_galeria="http://www.jcimoveisbrasil.com/img_imoveis/album/".$fotos."";
if($linha['area_construida']==''||empty($linha['area_construida'])){
$area_construida='Consulte-nos';
}else{
$area_construida=''.number_format($linha['area_construida'],0,',','');}
if($linha['area_total']==''||empty(
$linha['area_total'])){
$area_total='Consulte-nos';
}else{
$area_total=''.number_format(
$linha['area_construida'],0,',','');}
if($linha['valor_condominio']==''||empty($linha['valor_condominio'])){$valor_condominio='Consulte-nos';
}else{
$valor_condominio=''.number_format( $linha['valor_condominio'],0,',','');
}
if($linha['valor_iptu']=='0.00'||empty($linha['valor_iptu'])){
$valor_iptu='Consulte-nos';
}else{$valor_iptu=''.number_format($linha['valor_iptu'],0,',','');}if($linha['valor']=='0.00'||empty($linha['valor'])){$valor='0.00';}else{$valor=''.number_format($linha['valor'],0,'','');
}

echo"<imovel><codigoreferencia><![CDATA[".$id."]]></codigoreferencia>
<urlimovel><![CDATA[http://www.jcimoveisbrasil.com/imovel/".$tipo."/".$bairro."/".$cidade."/".$linha['id']."]]></urlimovel>
<finalidade><![CDATA[Venda]]></finalidade><tipo><![CDATA[casa]]></tipo>
<titulo><![CDATA[".$foto_titulo."]]></titulo>
<descricao><![CDATA[".strip_tags(trim(str_replace(' ','',$msg)))."]]></descricao>
<dormitorios><![CDATA[".$dormitorios."]]></dormitorios>
<banheiros><![CDATA[".$banheiros."]]></banheiros>
<suites><![CDATA[".$suites."]]></suites>
<vagas><![CDATA[".$garagem."]]></vagas>
<area><![CDATA[".$area_construida."]]></area>
<bairro><![CDATA[".$bairro."]]></bairro>
<cidade><![CDATA[".$cidade."]]></cidade>
<estado><![CDATA[SP]]></estado>
<pais><![CDATA[Brasil]]></pais>
<preco><![CDATA[".$valor."]]></preco>";
?>
<fotos>
<?php
$var="\n";
$max_2=10;$inicio_2=$max_2*$inicio;$pgs=ceil($total/$max);
$sqll=$MySQLi->query("SELECT foto FROM fotos AS foto WHERE id_imovel=".$id." ORDER BY id DESC LIMIT ".$inicio_2.",".$max_2."")OR trigger_error($MySQLi->error, E_USER_ERROR);while($linhas=mysqli_fetch_array($sqll)){$fotos=$linhas['foto'];
$fotos_galeria="http://www.jcimoveisbrasil.com/img_imoveis/album/".$fotos."";
echo "<![CDATA[".$fotos_galeria."]]>";

}
?>
</fotos>
<?php
echo'
<anunciante>
<tipoanunciante><![CDATA[imobiliaria]]></tipoanunciante>
<nomefantasia><![CDATA[JC IMÓVEIS BRASIL]]></nomefantasia>
<endereco><![CDATA[Rua Victório Santim , 889 ]]></endereco>
<bairro><![CDATA[Itaquera]]></bairro>
<cidade><![CDATA[São Paulo]]></cidade>
<estado><![CDATA[SP]]></estado>
<telefone><![CDATA[(11) 2056-4012]]></telefone>
<email><![CDATA[jcimoveisbrasil@hotmail.com]]></email>
<urlsite><![CDATA[http://www.jcimoveisbrasil.com]]></urlsite>
<urllogo><![CDATA[http://www.jcimoveisbrasil.com/images/jclogo.png]]></urllogo>
</anunciante>';
?>
<?php

echo "<latitude><![CDATA[".$latitude."]]></latitude>
<longitude><![CDATA[".$longitude."]]></longitude>";?>
<?php echo"</imovel>".PHP_EOL."";}?>
</imoveis>
</classificados>

E com esse XML acima eu consigo exportar meus anúncios para quase todos os portais e menos alguns que esta dando o erro acima do post #1, e esses portais usam o método DOM para fazer a requisição ..e o primeiro código que postei eu apenas coloquei de exemplo para imprimir o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então inverta o que eu disse, quem tem que alterar o script é o portal, pois o "problema" está no servidor dele, você não tem nenhuma ação que pode ser feito para contornar isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o arquivo que retorna o xml é um PHP, entao pq você chama um .xml?

a nao ser que você tenha uma regra rewrite no seu .htacces, o arquivo xml_achou_mudou.xml nao existe por isso o erro 404. O que existe é o xml_achou_mudou.php eu acho

 

troque isso

$doc->load( 'http://www.jcimoveisbrasil.com/xml_achou_mudou.xml' );

por

$doc->load( 'http://www.jcimoveisbrasil.com/xml_achou_mudou.php' );

Compartilhar este post


Link para o post
Compartilhar em outros sites

ELETRONIC obrigado pela resposta e sim eu uso a regra no .htaccess para urls amigáveis, mas meu problema nõa é este e como O Serra disse acho que o portal teria que mudar a linguagem para a importação do XML.. Mesmo usando php retorna mesmo erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então inverta o que eu disse, quem tem que alterar o script é o portal, pois o "problema" está no servidor dele, você não tem nenhuma ação que pode ser feito para contornar isto.

Então Serra agora me diga, o portal deles tem outras empresas que usam o XML e se comunicam e é feito a importação sem erros vou dar um exemplo do xml que ele me passaram segue o link abaixo:

 

http://www.jgodoiimoveis.com.br/exportacao/achoumudou.xml

 

O portal me passou esse link deste XML e eles me disseram que a importação é feita normalmente, e na minha hospedagem que hoje me arrependo de ter contratado a UOL HOST, minha plataforma é linux e roda o php 5.6 que esta desabilitada a diretiva allow url fopen por definitivo, nem pelo .htaccess é possível habilitá-la, não sei se é por isso que não esta havendo comunicação usando CURL ou DOM...

 

A mensagem abaixo foi uma pessoa do suporte do portal que me enviou e foi o erro que o portal aponto quando tentou fazer uma requisição com o meu XML


Fiz um teste agora com o wget e funcionou pelo jeito não é o ip, mas veja o 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Serra agora me diga, o portal deles tem outras empresas que usam o XML e se comunicam e é feito a importação sem erros vou dar um exemplo do xml que ele me passaram segue o link abaixo:

Infelizmente aqui a minha opinião seria baseada em achismo, existem várias possibilidades, por exemplo, instalações diferentes com configurações do PHP diferentes em cada site/whm da máquina.

 

O portal me passou esse link deste XML e eles me disseram que a importação é feita normalmente, e na minha hospedagem que hoje me arrependo de ter contratado a UOL HOST, minha plataforma é linux e roda o php 5.6 que esta desabilitada a diretiva allow url fopen por definitivo, nem pelo .htaccess é possível habilitá-la, não sei se é por isso que não esta havendo comunicação usando CURL ou DOM...

Allow URL Fopen afeta apenas o fpen para URL externas, é provável quem o DOM load utilize isto. Em tese cURL não é afetado, exatamente por isto eu nunca uso fopen, assim consigo garantir que se cURL estiver ativo no servidor vou conseguir fazer requisições externas sem problemas.

 

Qual foi a sua tentativa com cURL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente aqui a minha opinião seria baseada em achismo, existem várias possibilidades, por exemplo, instalações diferentes com configurações do PHP diferentes em cada site/whm da máquina.

 

Allow URL Fopen afeta apenas o fpen para URL externas, é provável quem o DOM load utilize isto. Em tese cURL não é afetado, exatamente por isto eu nunca uso fopen, assim consigo garantir que se cURL estiver ativo no servidor vou conseguir fazer requisições externas sem problemas.

 

Qual foi a sua tentativa com cURL?

Então antes a importação era feita normalmente por esse mesmo portal, e foi só agora que este problema vem a acontecer, e acho que eles fizeram alguma coisa no servidor do portal ou então a Uol host esta bloqueando alguma coisa, por exemplo me tira uma dúvida , se a diretiva allow url fopen estiver desabilitada , eu não consigo acessar a url com dom vou dar um exemplo abaixo:

 

 

Eu testei localmente assim com a url de um outro cliente do portal veja:

<?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.jgodoiimoveis.com.br/exportacao/achoumudou.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 />
";
}
//------------------------SEPARADOR----------------------------------//
?>

_______________________________________________________________________________________________________________________________________<br /><br />





";
  }




  

?>

Pode ver no script acima a url que estou chamando , e eu testando em localhost eu consigo acessá-la e imprimir os dados do XML na tela mas com a minha url do mei site não veja abaixo o mesmo script mas com a minha url:

<?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 />
";
}
//------------------------SEPARADOR----------------------------------//
?>

Então no meu caso é como se o meu servidor barrasse o acesso a minha url pelo script php..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este post é antigo e fiz uma reclamação no meu host dentro da UOL , e só posso fazer essa alteração se estiver usando o PHP 5.2.17 , mas como eu gosto de manter meus códigos atualizados e uso a última versão até esta data de 04/12/2015 uso o PHP 5.6, e nesta versão a UOL desabilitou definitivamente essa função, e nem pensar em usar .htaccess , nõa funfa mais..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente aqui a minha opinião seria baseada em achismo, existem várias possibilidades, por exemplo, instalações diferentes com configurações do PHP diferentes em cada site/whm da máquina.

 

Allow URL Fopen afeta apenas o fpen para URL externas, é provável quem o DOM load utilize isto. Em tese cURL não é afetado, exatamente por isto eu nunca uso fopen, assim consigo garantir que se cURL estiver ativo no servidor vou conseguir fazer requisições externas sem problemas.

 

Qual foi a sua tentativa com cURL?

Serra obrigado pela ajuda , mas eu e o cara do suporte conseguimos resolver o problema que a MER...... do servidor UOL HOST barra a transmissão e bloqueia a requisição feita pelo DOM, REQUEST, ou até FOPEN, conseguimos resolver da seguinte maneira:

 

Antes de iniciar a função do código tanto fopen , tanto DOM ou Request, é só inserir esse código que seria o USER AGENT, segue abaixo:

$opts=array('http'=>array('user_agent'=>'AchouMudouIntegracao',));
 
$context = stream_context_create($opts);
libxml_set_streams_context($context);                                            

ATENÇÃO:

 

Este código acima funciona apenas para requisição DOM ou REQUEST, depois que fui ver isso:

 

Mas testei esse código abaixo e deu certo em todas as funções sem dar aquele erro de requisição HTTP request failed! HTTP/1.1 404 :

<?php

ini_set('user_agent','MSIE 4\.0b2;');
?>

 

 

Na hora que coloquei este código no topo do meu código, e quando atualizei, na mesma hora consegui fazer a requisição sem erro algum, graças a DEUS e ao meu empenho e com a ajuda fundamental de vocês consegui resolver , e para quem estiver o mesmo problema é só alterar dentro das aspas simples onde esta o nome do portal para o nome do portal o site que queira fazer uma requisição...

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.