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