php生成网站地图(sitemap)—PHP-XML-Sitemap-Generator
Author:zhoulujun Date:
最近发现网站一些文章不被google收录,貌似没有找到google 的类似百度的手动提交网址。phpcms自带的 网站地图生成器,不想用。太烂。
于是,只有手工做一个。
goolge 爸爸看了下:https://code.google.com/archive/p/sitemap-generators/wikis/SitemapGenerators.wiki
使用 这个,Simple Sitemaps (PHP),配置了半天,然并卵,生成不好用
个人推荐这个库,最好用
https://github.com/iprodev/PHP-XML-Sitemap-Generator
如果是https 网站,这个需要修改下代码
function GetUrl ($url,$CA = true) {
$agent = "Mozilla/5.0 (compatible; iProDev PHP XML Sitemap Generator/" . VERSION . ", https://www.zhoulujun.com)";
$cacert = getcwd() . '/cacert.pem'; //CA根证书
$SSL = substr($url, 0, 8) == "https://" ? true : false;
$ch = curl_init();
curl_setopt ($ch, CURLOPT_AUTOREFERER, true);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_VERBOSE, 1);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 检查证书中是否设置域名
// if ($SSL && $CA) {
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 只信任CA颁布的证书
// curl_setopt($ch, CURLOPT_CAINFO, $cacert); // CA根证书(用来验证的网站证书是否是CA颁布)
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 检查证书中是否设置域名,并且是否与提供的主机名匹配
// } else if ($SSL && !$CA) {
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 检查证书中是否设置域名
// }
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
这样,就可以了
我是在本地跑完,然后再上传至服务器的,我是在mac上面的跑的
像我的网站,有差不多一万多个页面,所以跑着就出错
Allowed memory size of 134217728 bytes exhausted……
因为php的内存不够了,所以需要修改mac php内存配置
Mac OS X中没有默认的php.ini文件,但是有对应的模版文件php.ini.default,位于/etc/php.ini.default ,可以自行拷贝一份进行修改。
查找到memory_limit = 128M这一行,将128M改大点,我这里直接是改成了2048M。
这样重新跑一遍就好了
转载本站文章《php生成网站地图(sitemap)—PHP-XML-Sitemap-Generator》,
请注明出处:https://www.zhoulujun.cn/html/php/phpBase/2020_1216_8592.html