Autor Zpráva
MartinBen
Profil
Dobrý den,

mam následující script, který mi dynamicky generuje sitemap. Jenže soubor má příponu php - sitemap.php. Potřeboval bych to nějakým způsobem změnit na sitemap.xml. Předpokládám použití funkce fopen nebo něco podobného.

<?php

echo "<?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
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">
<url>
<loc>http://kitlab.pef.czu.cz/1112zs/ete32e/04/</loc>
<priority>1.0</priority>
</url>";
$dir = opendir(".");
while(($file = readdir($dir)) != false) {
if (ereg("^.+.php", $file) && !(ereg("^index.php$", $file)) && !(ereg("^sitemap.php$", $file))) {
$lastmod = date("Y-W-d", filectime($file));
echo "<url>
<loc>http://kitlab.pef.czu.cz/1112zs/ete32e/04/" . $file . "</loc>
<priority>0.8</priority>
<lastmod>" . $lastmod . "<lastmod>
<changefreq>weekly</changefreq>
</url>\n";
}
}
closedir($dir);
echo "</urlset>";
?>

Pokdu někdo víte, budu rád. V PHP jsem začátečník...
ShiraNai7
Profil
Nebo mod_rewrite.. v souboru .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/sitemap\.xml$
RewriteRule .* /sitemap.php [L]

Pak požadavek na sitemap.xml bude generován skriptem sitemap.php.
MartinBen
Profil
ShiraNai7:
Díky moc... No toto řešení mě taky napadlo, jenže mi nejde editovat .htaccess :-(
Kajman
Profil
Tak v tom php si generovanou mapu uložte do xml souboru a pak ho volejte tak často, jak je potřeba.
Jenicek
Profil
$fp = FOpen ("sitemap.xml", "w");
FWrite ($fp, $sitemap);
FClose ($fp);


proč to dělat složitě když to jde sednoduše? em? :D
Majkl578
Profil
Jenicek:
proč to dělat složitě když to jde sednoduše? em? :D
A proč se tím pravidlem tedy neřídíš?
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'sitemap.xml', $sitemapXml);

MartinBen:
Funkci ereg bys neměl používat, v blízké době bude z PHP odstraněna, již teď generuje hlášku úrovně E_DEPRECATED.
Místo echo budeš nyní jen skládat XML do proměnné $sitemapXml a následně vše uložíš výše uvedeným. Případně může rovnou zapisovat do souboru opakovaným voláním fwrite v kombinaci s kódem v [#5].
Jenicek
Profil
jo tak sorry, napsal jsem první co si ještě z php pamatuji
:) :D
Kajman
Profil
Ještě jemožné vytvořit soubor sitemap.xml, který se odkáže na ten php soubor...

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>http://kitlab.pef.czu.cz/1112zs/ete32e/04/sitemap.php</loc></sitemap>
</sitemapindex>
MartinBen
Profil
Děkuji všem... :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0