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

 1,生成百度SEO的sitemap

 2,xml的url问题  处理

3,实例代码

<?php
/**
 * 生成xml的url问题,( ? & 与 空格处理)
 */
$url_prefix = "http://www.baidu.com/xxx/?brand=";
// 1, urlencode($brand) 针对 [ 空格 ] 处理
$brand = '10 IQ';
$bank = urlencode($brand);

// 2, htmlentities($url) 针对 [ ? & ] 处理
$url = "http://www.baidu.com/xxx/?brand=" . urlencode($brand);
$end_result = htmlentities($url);
var_dump($end_result);

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

/**
 * 把特定格式的数组转化成XML
 *
 * @param $arr array  数组格式如下
 * [1430]=>
 *   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);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
生成网站的 sitemap.xml 文件可以帮助搜索引擎更好地抓取和索引您的网站内容,从而提高您的 SEO 优化效果。下面是使用 Node.js 动态生成网站 sitemap.xml 的方法: 1. 安装依赖 首先,您需要安装 `xmlbuilder` 模块,它是一个轻量级的 XML 创建器,可以用于动态生成 XML 文件。 ``` npm install xmlbuilder --save ``` 2. 生成 sitemap.xml 文件 在您的 Node.js 项目创建一个生成 sitemap.xml 文件的脚本文件,并编写以下代码: ```javascript const fs = require('fs'); const xmlbuilder = require('xmlbuilder'); const baseUrl = 'https://www.example.com'; // 网站页面的 URL 列表 const urls = [ '/', '/about', '/services', '/blog', '/contact' ]; // 创建 sitemap.xml 文件 const root = xmlbuilder.create('urlset', { version: '1.0', encoding: 'UTF-8' }); root.att('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); urls.forEach(url => { const loc = baseUrl + url; const urlNode = root.ele('url'); urlNode.ele('loc', {}, loc); }); const xml = root.end({ pretty: true }); fs.writeFileSync('sitemap.xml', xml, 'utf8'); console.log('Sitemap generated successfully!'); ``` 在上面的代码,我们首先定义了一个 `baseUrl` 变量,用于存储网站的基础 URL,然后定义了一个 `urls` 数组,用于存储网站页面的 URL 列表。 接着,我们使用 `xmlbuilder` 模块创建了一个 XML 文件的根节点 `urlset`,并设置了其命名空间。然后,我们遍历 `urls` 数组,为每个页面创建一个 `url` 节点,并添加一个 `loc` 子节点,用于存储页面的 URL。 最后,我们使用 `fs` 模块将生成XML 内容写入到 `sitemap.xml` 文件,并在控制台输出成功信息。 3. 集成到网站 生成 sitemap.xml 文件后,您需要将其添加到您的网站根目录下,并在网站的 robots.txt 文件添加以下代码: ``` Sitemap: https://www.example.com/sitemap.xml ``` 这将告诉搜索引擎您网站的 sitemap.xml 文件的位置,以便更好地抓取和索引您的网站内容。 通过以上几步,您就可以使用 Node.js 动态生成网站 sitemap.xml 文件,并优化您的 SEO 效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值