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>
Obs: o banco de dados contem mais de 10 mil registros
<?php
// Data e hora atual
$datetime = new DateTime(date('Y-m-d H:i:s'));
// A linha abaixo me retornará uma data no seguinte formato: 2017-11-22T00:06:23-02:00
$date = $datetime->format(DateTime::ATOM); // ISO8601
// Gera o arquivo XML do sitemap
$xml = '<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>'.ConfigPainel('site_url').'</loc>
<lastmod>'.$date.'</lastmod>
<changefreq>weekly</changefreq>
<priority>1.00</priority>
</url>';
$Query = DBRead('cidades','*',"WHERE status ='1' ORDER BY nome ASC");
if (is_array($Query)) { foreach ($Query as $modcid) {
$xml .='
<url>
<loc>'.ConfigPainel('site_url').''.$modcid['subdominio'].'/</loc>
<lastmod>'.$date.'</lastmod>
<changefreq>weekly</changefreq>
<priority>1.00</priority>
</url>';
//$QueryR = DBRead('directory_guia', '*',"WHERE cidade='{$modcid['id']}' AND status='1' ORDER BY titulo ASC");
$QueryR = DBRead('directory_guia', '*',"WHERE cidade='{$modcid['id']}' AND status='1' ORDER BY titulo ASC LIMIT 1200");
if (is_array($QueryR)) { foreach ($QueryR as $v) {
$Queryc = DBRead('cidades', '*',"WHERE id='{$v['cidade']}' ORDER BY nome ASC")[0];
if(empty($v['slug'])) {
}else{
$urlseo = ''.ConfigPainel('site_url').''.$Queryc['subdominio'].'/list/'.$v['slug'].'/';
$xml .='
<!-- INICIO DA EMPRESA '.TRIM($v['titulo']).' -->
<url>
<loc>'.$urlseo.'</loc>
<lastmod>'.$date.'</lastmod>
<changefreq>weekly</changefreq>
<priority>0.85</priority>
</url>
<!-- FIM DA EMPRESA '.TRIM($v['titulo']).' -->
';
}
}}
}}
$xml .= '
</urlset>';
// Abre o arquivo ou tenta cria-lo se ele não exixtir
$arquivo = fopen('../sitemap.xml', 'w');
if (fwrite($arquivo, $xml)) {
Redireciona('./index.php?sucesso');
} else {
Redireciona('?erro');
}
fclose($arquivo);
// Compactar arquivo sitemap para GZIP
$data = implode("", file("sitemap.xml"));
$gzdata = gzencode($data, 9);
$fp = fopen("sitemap.xml.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
// Envia para o Google o novo sitemap gerado
$urlSitemap = "http://www.google.com/webmasters/sitemaps/ping?sitemap=".ConfigPainel('site_url')."";
// Arquivos a serem enviados
$Files = ['sitemap.xml', 'sitemap.xml.gz'];
// Envia os dois arquivos sitemap gerados para a URL do Google
foreach ($Files as $file) {
$url = $urlSitemap . $file;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
}
?>
Caso ouve outra forma que eu possa gerar este sitemap com php fico grato...
Ola caros amigos.
Estou com uma dúvida aqui que embora nao tenho achado ainda uma resposta, acredito que haja.
Estou estudando a tão sonhada linguagem de programação asp.net core mvc. Linguagem essa que demorei 5 anos pra iniciar os estudos rsrs.
Mas estou agarrado em uma situação.
Estou usando como base de dados nos meus estudos um banco Oracle. Que já tem algumas informações nele. Utilizei o SCAFFOLD para criar as classes e o contexto baseado no banco e tabelas existentes.
Porem agora na fase das consultas, estou perdido em como utilizar o IN que eu utilizo no oracle; no LINQ.
Ex:
SELECT CODPROD,DESCRICAO
FROM PRODUTO
WHERE CODPROD IN(1,2,3,4,5,6)
Como eu utilizo esse filtro com uma restrição de códigos de produtos? no caso o where codprod in(1,2,3,4,5,6) ?.
Desde já obrigado pela ajuda.