Fala ai galerinha...bom dia todos!
Preciso criar uma pagina PHP que gera um arquivo com extensão .xml pegando dados de um outro arquivo xml que não tem a extensão .xml
Só que alem de pegar essas informações eu preciso usar um str_replace para substituir uma parte das informações, para ser mais preciso das urls...preciso tirar alguns parâmetros e deixar a url limpa.
Eu consegui gerar dois códigos diferentes seguindo alguns tutos...ambos geram o arquivo xml, mas um eu consegui usar o str_replace nas urls só que não gerou o loop ou repetição.
O outro gerou o loop das informações mas não consegui usar o str_replace..rs
Será que alguém poderia me dar um help??
Segue ambos aos códigos...
Esse gerou o loop mas não funcionou o replace:
E esse funcionou o replace mas não o loop:
Espero que alguém consiga me ajudar..hehehe
Abração galerinha.
Preciso criar uma pagina PHP que gera um arquivo com extensão .xml pegando dados de um outro arquivo xml que não tem a extensão .xml
Só que alem de pegar essas informações eu preciso usar um str_replace para substituir uma parte das informações, para ser mais preciso das urls...preciso tirar alguns parâmetros e deixar a url limpa.
Eu consegui gerar dois códigos diferentes seguindo alguns tutos...ambos geram o arquivo xml, mas um eu consegui usar o str_replace nas urls só que não gerou o loop ou repetição.
O outro gerou o loop das informações mas não consegui usar o str_replace..rs
Será que alguém poderia me dar um help??
Segue ambos aos códigos...
Esse gerou o loop mas não funcionou o replace:
Código PHP:
<?php
function filtra_info($dados,$tag){
$tam_tag=strlen("<$tag>");
$dados=strstr($dados, "<$tag>");
$fim_data=strpos($dados,"</$tag>");
$dados=substr($dados,$tam_tag,$fim_data-$tam_tag);
return $dados;
}
$c='';
$fp2 = fsockopen ("www.ezip.com.br", 80 ,$errno ,$errstr, 30);
if ($fp2) {
fputs ($fp2, "
GET /xml.asp?tipo=1 HTTP/1.1
Host: www.ezip.com.br
Connection: Close
");
} else {
return "Erro de conexão";
die();
}
while (!feof($fp2)) $c.= fgets ($fp2,1024);
fclose ($fp2);
$item=explode('</produto>',$c);
$c='';
$tr=0;
foreach($item as $it){
if (!empty($it)){
if ($tr==0)
$c.="<loc>" .filtra_info($it,'link_produto')."</loc>";
}
}
$saudavel = array("utm_source=buscape&utm_medium=xml_anuncio&utm_campaign=Buscape&IdSite=48&", "&parceiro=buscape&utm_source=produtos_buscape.asp&utm_medium=xml_anuncio&utm_campaign=Buscape");
$saboroso = array("", "");
$novafrase = str_replace($saudavel, $saboroso, $c);
//Primeira Etapa
$arquivo="sitemap.xml";
$fp = fopen($arquivo, "w");
//Segunda Etapa
$header='<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">';
fwrite($fp, $header);
//Terceira Etapa
$variavel="
<url> " . $novafrase . "
</url>
";
fwrite($fp, $variavel);
//Quarta Etapa
fwrite($fp, "</urlset>");
//Quinta Etapa
fclose($fp);
//Seta Etapa
echo "<a href=\"sitemap.xml\">Baixar documento</a>";
?>
E esse funcionou o replace mas não o loop:
Código PHP:
<?php
//Primeira Etapa
$arquivo="sitemap.xml";
$fp = fopen($arquivo, "w");
//Segunda Etapa
$header='<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">';
fwrite($fp, $header);
//Segunda Etapa Dois
$xml = simplexml_load_file("http://www.ezip.com.br/XML.asp?tipo=1");
foreach($xml->xpath('//produto') as $produto){
$registro = simplexml_load_string($produto->asXML());
$busca = $registro->xpath("//produto");
if($busca){
$url = "<url>" . $produto->link_produto . "</url>";
$urltext = array("utm_source=buscape&utm_medium=xml_anuncio&utm_campaign=Buscape&IdSite=48&", "&parceiro=buscape&utm_source=produtos_buscape.asp&utm_medium=xml_anuncio&utm_campaign=Buscape");
$url_altera = array("", "");
$novaurl = str_replace($urltext, $url_altera, $url);
$variavel = $novaurl;
}
}
fwrite($fp, $variavel);
//Quarta Etapa
fwrite($fp, "</urlset>");
//Quinta Etapa
fclose($fp);
//Seta Etapa
echo "<a href=\"sitemap.xml\">Baixar documento</a>";
?>
Abração galerinha.