• home > php > base >

    php生成网站地图(sitemap)—PHP-XML-Sitemap-Generator

    Author:zhoulujun Date:

    使用 这个,Simple Sitemaps (PHP),配置了半天。不如使用PHP-XML-Sitemap-Generator。如果是https,还是需要修改的curl_exec配置。同时需要修改内存配置大小。其实我是希望直接把缓存写入文件

    最近发现网站一些文章不被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