生成百度SEO的sitemap的xml的url问题

 1,生成百度SEO的sitemap

 2,xml的url问题  处理

3,实例代码


 *   array {
 *     ["loc"]=>"http://www.xxx.com/?brand=xxx", // url
 *     ["lastmod"]=>"2019/05/24", // 时间戳
 *     ["changefreq"]=>"weekly",  // weekly固定
 *     ["priority"]=>"1", // 权重
 * }
 * @param string $rootNodeName 最外层节点(根节点)
 * @return string
 */
function arrToXml($arr, $rootNodeName = 'sitemapindex')
{
    $Dom = empty($Dom) ? new DOMDocument('1.0', 'utf-8') : $Dom;
    // 根节点
    $root_node = $Dom->createElement($rootNodeName);
    $Dom->appendChild($root_node);

    //第一个节点
    $firstNodeName = key($arr);
    //循环节点
    foreach ($arr[$firstNodeName] as $value) {
        $firstNode = $Dom->createElement($firstNodeName);
        $root_node->appendChild($firstNode);
        // htmlentities将id=12&backUrl=%2Ftrends%2F转义
        $locNode = $Dom->createElement("loc", htmlentities($value["loc"]));
        $firstNode->appendChild($locNode); // loc网址
        $lastmodNode = $Dom->createElement('lastmod', $value["lastmod"]);
        $firstNode->appendChild($lastmodNode); // lastmod更新时间
        $changefreqNode = $Dom->createElement("changefreq", $value["changefreq"]);
        $firstNode->appendChild($changefreqNode); // changefreq更新频率 // weekly固定
        $priorityNode = $Dom->createElement("priority", $value["priority"]);
        $firstNode->appendChild($priorityNode); // priority权重值 // 首页--1  二级栏目/sitemap列表--0.8 筛选--0.6  内容页--0.4

    }
    $Dom->formatOutput = true;//将特殊形式输出出来
    $result = $Dom->saveXML();
    return $result;
}

// -----------------------------------------------------------------------------

// 标准的sitemap,少  changefreq更新频率  与  priority权重值 
function arrToXml_all($arr, $rootNodeName = 'sitemapindex')
{
    $Dom = empty($Dom) ? new DOMDocument('1.0', 'utf-8') : $Dom;
    // 根节点
    $root_node = $Dom->createElement($rootNodeName);
    $Dom->appendChild($root_node);

    //第一个节点
    $firstNodeName = key($arr);
    //循环节点
    foreach ($arr[$firstNodeName] as $value) {
        $firstNode = $Dom->createElement($firstNodeName);
        $root_node->appendChild($firstNode);

        $locNode = $Dom->createElement("loc", $value["loc"]);
        $firstNode->appendChild($locNode);
        $lastmodNode = $Dom->createElement('lastmod', $value["lastmod"]);
        $firstNode->appendChild($lastmodNode);
    }
    $Dom->formatOutput = true;//将特殊形式输出出来
    $result = $Dom->saveXML();
    return $result;
}

// -----------------------------------------------------------------------------

/**
 * 输出xml数据到xml文件中
 *
 * @param $file  string 文件名 【sitemap/sitemap.xml】
 * @param $xml_str
 * @return bool|int
 */
function outXmlFile($file, $xml_str)
{
    echo "生成 ", $file, " 成功!", PHP_EOL;
    return file_put_contents($file, $xml_str);
}

$array = array(
    0 => array(
        "loc" => "http://www.xxx.com/?brand=xxx", // url
        "lastmod" => "2019/05/24", // 时间戳
        "changefreq" => "weekly",  // weekly固定
        "priority" => "1", // 权重
    ),
    //  . . .
);
arrToXml($array, "urlset");
outXmlFile("http://www.xxx.com/" . '/sitemap_' . $this->file_number . '.xml', $return);

你可能感兴趣的:(PHP基础)