- Home
- Categorie
- Coding e Sistemistica
- PHP
- Dividere in più file site map
-
Dividere in più file site map
Salve ragazzi, già tempo fa cercai di risolvere il problema e scrissi sempre sul forum il problema che avevo e che tutt'oggi non sono ancora riuscito a risolvere.
Veniamo al dunque: Il file della sitemap.xml che genero lanciando lo script mi crea una sitemap molto grande tanto da non permettermi il download con comuni programmi, solo con filezzilla riesco a scaricarlo.Veniamo al codice:
<?
$root=$_SERVER['DOCUMENT_ROOT'];
include($root."/inc/config.php");$prioritastrutture = "0.5";
$fp = fopen("sitemap.xml", "w"); (scrive sul server il file sitemap.xml)
if($fp==false)
die("unable to create file");
else {
fputs($fp, "<?xml version="1.0" encoding="UTF-8"?>\r\n");
fputs($fp, "<urlset\r\n");
fputs($fp, "xmlns="/ogle.com/schemas/sitemap/0.84"\r\n");
fputs($fp, "xmlns:xsi=" w3.org/2001/XMLSchema-instance"\r\n");
fputs($fp, "xsi:schemaLocation=" google.com/schemas/sitemap/0.84\r\n");
fputs($fp, " google.com/schemas/sitemap/0.84/sitemap.xsd">\r\n");include($root.'/inc/sitemap/primasezione_wr.php'); (prende i link presenti in questa sezione e li scrive sul file sitemap.xml)
//include($root.'/inc/sitemap/secondasezione_wr.php');
//include($root.'/inc/sitemap/terzasezione_wr.php');
//include($root.'/inc/sitemap/quartasezione_wr.php');
//include($root.'/inc/sitemap/quintasezione_wr.php');fputs($fp, "</urlset>\r\n");
while (!feof($fp)) { echo fgets($fp, 1024); } fclose($fp);
}
?>Ora, volendo creare più file generandoli in modo dinamico che non superi ognuno i 50.000 url come potrei modificare il codice?
In pratica vorrei paginarli in modo dinamico.
-
Ciao colvi,
il problema è che il cuore dello script è contenuto nei vari file php richiamati, senza conoscere i quali possiamo fare ben poco.Ipotizzo che tutti quei file avranno dei cicli al loro interno: in teoria è sufficiente mettere quindi un contatore e quando questo raggiunge il valore 50000, chiudere il file di *sitemap *ed aprirne un altro.
Ovviamente il contatore va inizializzato a 0 una sola volta, nel main che hai postato sopra, e resettato a 0 ogni volta che crei un nuovo file.
Come sempre: se ci dai più info ti aiutiamo meglio...
-
@colvi said:
Salve ragazzi, già tempo fa cercai di risolvere il problema e scrissi sempre sul forum il problema che avevo e che tutt'oggi non sono ancora riuscito a risolvere.
Veniamo al dunque: Il file della sitemap.xml che genero lanciando lo script mi crea una sitemap molto grande tanto da non permettermi il download con comuni programmi, solo con filezzilla riesco a scaricarlo.Veniamo al codice:
<?
$root=$_SERVER['DOCUMENT_ROOT'];
include($root."/inc/config.php");$prioritastrutture = "0.5";
$fp = fopen("sitemap.xml", "w"); (scrive sul server il file sitemap.xml)
if($fp==false)
die("unable to create file");
else {
fputs($fp, "<?xml version="1.0" encoding="UTF-8"?>\r\n");
fputs($fp, "<urlset\r\n");
fputs($fp, "xmlns="/ogle.com/schemas/sitemap/0.84"\r\n");
fputs($fp, "xmlns:xsi=" w3.org/2001/XMLSchema-instance"\r\n");
fputs($fp, "xsi:schemaLocation=" google.com/schemas/sitemap/0.84\r\n");
fputs($fp, " google.com/schemas/sitemap/0.84/sitemap.xsd">\r\n");include($root.'/inc/sitemap/primasezione_wr.php'); (prende i link presenti in questa sezione e li scrive sul file sitemap.xml)
//include($root.'/inc/sitemap/secondasezione_wr.php');
//include($root.'/inc/sitemap/terzasezione_wr.php');
//include($root.'/inc/sitemap/quartasezione_wr.php');
//include($root.'/inc/sitemap/quintasezione_wr.php');fputs($fp, "</urlset>\r\n");
while (!feof($fp)) { echo fgets($fp, 1024); } fclose($fp);
}
?>Ora, volendo creare più file generandoli in modo dinamico che non superi ognuno i 50.000 url come potrei modificare il codice?
In pratica vorrei paginarli in modo dinamico.Il cuore del codice richiamato è il seguente:
<?
$query_affitto="SELECT * FROM immobile WHERE abilitato='s' AND proposta='affitto' AND offerta_speciale='si' ORDER BY 'id' DESC";
$result_affitto=mysql_query($query_affitto) or die ($query_affitto);
$numeroaff=mysql_num_rows($result_affitto);
?>
<?
if ($numeroaff>0) {
while ($row_affitto=mysql_fetch_array($result_affitto))
{$query_aff4="SELECT * FROM comune WHERE id=$row_affitto[comune]"; $result_aff4=mysql_query($query_aff4) or die ($query_aff4); $row_aff4=mysql_fetch_array($result_aff4); $comune=$row_aff4[nome_comune]; $comune1=str_replace(" ", "_",$comune); $comune2=str_replace("'", "_",$comune1); $typo1=str_replace(" ", "_",$row_affitto[tipologia]); $typo2=str_replace("'", "_",$typo1); $typo3=str_replace(" ", "-",$row_affitto[tipologia]); $typo4=str_replace("'", "-",$typo3);?>
<url>
<loc>/ita/a-<? echo $comune2; ?>-<? echo $typo2; ?>-in-<? echo $row_affitto[proposta]; ?>-<? echo $row_affitto[id]; ?>.html</loc>
<lastmod><? echo $datamodifica; ?></lastmod>
<priority><? echo $prioritaaffitto; ?></priority>
</url><url>
<loc>/ita/<? echo $typo4; ?>in<? echo $row_affitto[proposta]; ?>-1.html</loc>
<lastmod><? echo $datamodifica; ?></lastmod>
<priority><? echo $prioritaaffitto; ?></priority>
</url><url>
<loc>/offerte/<? echo $comune2; ?>/<? echo $row_affitto[proposta]; ?>/<? echo $row_affitto[comune]; ?>/1/index.html</loc>
<lastmod><? echo $datamodifica; ?></lastmod>
<priority><? echo $prioritaaffitto; ?></priority>
</url><? } } ?>
<url>
<loc>/case-nel-salento/immobili-in-affitto-1.html</loc>
<lastmod><? echo $datamodifica; ?></lastmod>
<priority><? echo $prioritaaffitto; ?></priority>
</url>Grazie Anticipatamente.