Mi chiedevo come posso creare una sitemap utilizzando PHP & MySQL e ci sono esempi di progettazione di sitemap che conosci?Come creare una sitemap utilizzando PHP e MySQL
risposta
Non penso che tu abbia bisogno di MySQL, è importante per te usarlo? Avete pagine dinamiche o statiche? La tua domanda è un po 'vaga. Vuoi creare un servizio che crei sitemap o semplicemente cerchi di indicizzare il tuo?
Questo è importante su come è strutturato il tuo sito. Le tue pagine web sono contenute nel database mysql insieme a una struttura del sito e vengono recuperate da uno script PHP che le fornisce all'utente o il tuo sito Web consiste solo di file .html statici? Se il primo, devi solo rendere la struttura del sito contenuta nel db in una bella lista di link leggibile. Se il secondo, si potrebbe, um, unire uno strumento che passa attraverso tutti i file e le directory nella cartella Web e ne crea una linklist, possibilmente analizzando i titoli dei siti dai file html: P
La domanda è molto vago - avremmo bisogno di sapere molto di più sul resto del tuo sito prima di ottenere una buona risposta.
Dipende dalla struttura della pagina e da ciò che si desidera includere nella mappa.
Se il sito è relativamente statico, è necessario salvare la Sitemap come pagina statica, pertanto non causa un'ulteriore elaborazione ogni volta che viene caricata. Tuttavia, se il tuo sito viene aggiornato frequentemente, potrebbe essere necessario aggiornare la mappa spesso, quindi una dinamica che si aggiorna ogni volta che viene caricata potrebbe essere migliore.
Se il tuo sito PHP ha una struttura CMS e tutte le tue pagine sono incluse nel CMS, allora dovrebbe essere relativamente semplice da eseguire attraverso il database e tirare i link a tutte le tue pagine (a seconda, ovviamente, sulla struttura del tuo CMS).
D'altra parte, se il tuo sito non è strutturato in un modo che ti permetta di farlo, o se vuoi limitare le pagine mostrate sulla mappa, allora potresti trovare più facile eseguire uno spider attraverso il sito e memorizzare i risultati.
Esistono già molti programmi di mappe di siti esistenti. Ho cercato su google php sitemap generator e ho ottenuto una serie completa di risultati, alcuni dei quali potrebbero sembrare utili per te, anche se solo così puoi scaricarli per studiarne il codice sorgente.
Posso chiederti di dare un'occhiata alla domanda relativa alla sitemap in xml qui: tinyurl.com/pgqjdeo? –
Lo uso sul mio sito, funziona bene e puoi puntare gli strumenti per webmaster di Google su "this_file.php" e fa miracoli!
<?php header("Content-type: text/xml"); echo'<?xml version=\'1.0\' encoding=\'UTF-8\'?>'; echo' <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 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'; include '../include.php'; $sql = mysql_query("select blah from bleh"); while ($string = mysql_fetch_array($sql)){?> <url> <loc>http://www.domain.com/dir/<?echo $string['value'];?>/index.php</loc> <changefreq>weekly</changefreq> </url> <?php } ?> </urlset>
Funzionerà per siti di piccole dimensioni. Ma per i siti con enormi dati generati dagli utenti, piangerà. –
Ho perso molto tempo a provare questo e poi vedo che il tag php non contiene Php e il mio server accetta solo in questo modo. Forse essere utile a qualcuno. –
@RahulPrasad - la memorizzazione nella cache del risultato funziona bene per siti di medie o grandi dimensioni. – Westy92
Ecco un codice che sto usando per generare una sitemap grande da una tabella di database. È un po 'un casino, ed è intrecciato con il sito esistente e esistente. Sto lavorando a una nuova versione, molto presto, ma forse aiuterà qualcuno.
<?php // vim:ai:et:sw=4:ts=4
/*
* Generates a sitemap from the database.
*/
include('shared/global.cfg');
define('DB_DSN', 'mysql:dbname='.DB_DATABASE.';host='.DB_HOSTNAME);
/*
* The page paramter picks out which sitemap to return, or,
* if no page is specified, returns an index of pages.
*/
$page = filter_input(INPUT_GET, 'page', FILTER_SANITIZE_NUMBER_INT);
if ($page == '') {
$page = 'index';
}
define('URLROOT', 'http://la.indymedia.org/');
define('SM_PATH', SF_CACHE_PATH.'/sitemap/');
$path = sitemap_page_path($page);
$index = sitemap_index_path();
/*
* If the index file is missing, or is old, regenerate the entire
* sitemap over. This takes several seconds.
*/
if (file_exists($index)) {
$stat = stat($index);
$mtime = $stat['mtime'];
$diff = time() - $mtime;
if ($diff > 24*60*60) {
regenerate_sitemap();
}
} else {
regenerate_sitemap();
}
/*
* Read the cached file, and spit it out.
*/
$text = file_get_contents($path);
header("Content-type: application/xml");
echo $text;
exit();
/*
* The main function to call to regen the sitemaps.
* It reads from the database.
* Paginates the results.
*/
function regenerate_sitemap() {
global $index;
$pdo = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$stmt = $pdo->prepare('SELECT id,created FROM webcast WHERE display<>"f" and parent_id=0');
$stmt->execute();
$count = 0;
$page = 1;
$urls = [];
$pageurls = [];
while($row = $stmt->fetch()) {
$created = $row['created'];
$y = substr($created,0,4);
$m = substr($created,5,2);
$id = $row['id'];
$urls[] = URLROOT."news/$y/$m/$id.php";
$count++;
if ($count==50000) {
write_sitemap_page($page, $urls);
$pageurls[] = URLROOT.'sitemap.php?page='.$page;
$page++;
$urls = [];
$count = 0;
}
}
// fixme - we need to make a sitemaps of events, right here.
if (count($urls) > 0) {
write_sitemap_page($page, $urls);
$pageurls[] = URLROOT.'sitemap.php?page='.$page;
}
write_sitemap_index($pageurls);
}
function sitemap_page_path($page) {
return SM_PATH.'sitemap_'.$page.'.xml';
}
function sitemap_index_path() {
return SM_PATH.'sitemap_index.xml';
}
/*
* Writes a single sitemap from an array of URLs.
*/
function write_sitemap_page($page, $urlarray) {
$path = sitemap_page_path($page);
$xml = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$xml .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach($urlarray as $url) {
$xml .= '<url><loc>'.$url.'</loc></url>';
}
$xml .= '</urlset>';
file_put_contents($path, $xml);
}
/*
* Writes the index of sitemaps.
*/
function write_sitemap_index($urlarray) {
$xml = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$xml .= '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach($urlarray as $url) {
$xml .= '<sitemap><loc>'.$url.'</loc></sitemap>';
}
$xml .= '</sitemapindex>';
file_put_contents(sitemap_index_path(), $xml);
}
- 1. Come creare una Sitemap utilizzando Sitecore
- 2. Come creare una Sitemap per CakePHP?
- 3. Creare una query mysql dinamica utilizzando le variabili php
- 4. Creazione di una sitemap XML con PHP
- 5. come creare la sitemap usando zend framework?
- 6. Creare un'applicazione desktop utilizzando PHP
- 7. E l'operatore non funziona in una funzione PHP utilizzando MySQL
- 8. Come creare una procedura memorizzata MySQL da PHP?
- 9. Come creare grafico da dati PHP/MySql?
- 10. Come creare profili utente con PHP e MySQL
- 11. Come creare un istogramma utilizzando MySQL
- 12. Come creare una vista ad albero da MySQL e PHP e jquery
- 13. consiglia uno script PHP per creare una sitemap XML? (metodo crawl/scrap)
- 14. Creare un file MySQL tramite PHP?
- 15. Memorizzazione e visualizzazione stringa unicode (हिन्दी) utilizzando PHP e MySQL
- 16. Come eseguire due query mysql come una in PHP/MYSQL?
- 17. Problemi di visualizzazione di caratteri giapponesi utilizzando PHP e MySQL
- 18. Come convalidare una data MySQL in PHP?
- 19. creare trasporre matrice utilizzando php
- 20. Magento e Google Sitemap - Cron
- 21. Creazione di più tabelle MySQL utilizzando PHP
- 22. come creare sitemap google per il sito mvc?
- 23. Sitemap per contenuti dinamici?
- 24. come creare un'applicazione php mysql che funziona offline
- 25. Creare oggetto nidificato json usando php mysql
- 26. SPSS e PHP/MySQL integrazione
- 27. Come unire due file MySQL in uno e visualizzarli in una tabella utilizzando PHP?
- 28. impossibile connettere unità e mysql utilizzando un servizio web php
- 29. Mantenere una cronologia delle revisioni con PHP e MySQL
- 30. Utilizzando variabili PHP all'interno dichiarazione dell'inserto MySQL
Cosa intendi per "sitemap" esattamente –
'sitemap.xml' per i motori di ricerca? O uno per l'utente da visualizzare? Se quest'ultimo, queste cose (soprattutto) è andato fuori moda nel corso dell'ultimo millennio. – ceejayoz
uno per i motori di ricerca. grazie. – HELP