当前位置:首页 > 文章列表 > 文章 > php教程 > PHP生成RSS订阅动态指南

PHP生成RSS订阅动态指南

2026-01-06 10:18:54 0浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《PHP动态网页RSS订阅生成指南》,以下内容主要包含等知识点,如果你正在学习或准备学习文章,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

PHP生成RSS订阅源的核心技术栈包括:PHP语言处理动态内容,MySQL获取文章数据,DOMDocument构建符合RSS 2.0规范的XML结构,设置application/rss+xml头输出,并用htmlspecialchars确保内容安全。

PHP动态网页RSS订阅生成_PHP动态网页RSSfeed订阅源创建指南

在PHP动态网页中生成RSS订阅源,核心在于将数据库或其他动态内容以XML格式封装,并遵循RSS规范输出,让用户可以通过订阅器实时获取网站更新。这听起来可能有点技术性,但说白了,就是把你的最新内容整理成一种特定的格式,方便大家订阅。

要实现PHP动态网页的RSS订阅源创建,我们通常需要经历几个关键步骤。在我看来,这不仅仅是技术上的堆砌,更是一种内容分发的思考。

你需要从你的数据源(比如MySQL数据库)中获取最新、最相关的内容。这通常是文章标题、链接、摘要、发布日期等。一个高效的数据库查询是基础,确保你只获取到需要展示在RSS中的数据,并且是按时间倒序排列的。

接下来,就是构建XML文档了。PHP提供了像DOMDocument这样的强大工具来处理XML,我个人更偏爱它,因为它能让你以面向对象的方式构建复杂的XML结构,错误处理也相对友好。当然,如果你只是生成一个非常简单的RSS,直接拼接字符串也未尝不可,但维护起来可能会比较麻烦。

RSS 2.0规范是我们需要严格遵循的。一个标准的RSS文件,最外层是标签,里面包含一个,而里则包含了整个订阅源的元信息(如标题、链接、描述)以及一系列的标签,每个就代表你的一篇文章或一个更新。每个至少要有</code>、<code><link></code>和<code><description></code>,发布日期<code><pubDate></code>也是非常关键的。</p><p>在PHP代码中,你会这样做:</p><ol><li><strong>设置HTTP头:</strong> 这是非常重要的一步,告诉浏览器或订阅器你输出的是XML内容。通常是<code>header('Content-Type: application/rss+xml; charset=UTF-8');</code>。</li><li><strong>创建DOMDocument对象:</strong> <code>$dom = new DOMDocument('1.0', 'UTF-8');</code>。</li><li><strong>构建根元素和频道:</strong> 创建<code><rss></code>和<code><channel></code>元素,并设置它们的属性和子元素,比如<code><title></code>、<code><link></code>、<code><description></code>。</li><li><strong>遍历数据并创建item:</strong> 循环你从数据库获取的数据,为每一条记录创建一个<code><item></code>元素,并填充其子元素,如文章标题、链接、发布日期等。特别注意日期格式,RSS通常要求RFC 822格式。</li><li><strong>输出XML:</strong> 最后,使用<code>$dom->saveXML();</code>方法将构建好的XML输出到浏览器。</li></ol><p>这里是一个简化的PHP代码示例,它展示了核心逻辑:</p><pre><?php header('Content-Type: application/rss+xml; charset=UTF-8'); // 模拟从数据库获取数据 function getLatestArticles() { // 实际应用中这里会是数据库查询,例如: // $pdo = new PDO('mysql:host=localhost;dbname=yourdb', 'user', 'password'); // $stmt = $pdo->query("SELECT title, link, description, pub_date FROM articles ORDER BY pub_date DESC LIMIT 10"); // return $stmt->fetchAll(PDO::FETCH_ASSOC); return [ [ 'title' => '我的第一篇PHP RSS指南', 'link' => 'https://example.com/article/1', 'description' => '这篇指南详细介绍了如何用PHP创建RSS订阅源。', 'pubDate' => time() - 3600 * 24 * 2, // 2天前 ], [ 'title' => '深入理解RSS 2.0规范', 'link' => 'https://example.com/article/2', 'description' => '了解RSS的各个标签和它们的作用,确保你的订阅源符合标准。', 'pubDate' => time() - 3600 * 24, // 1天前 ], [ 'title' => '优化PHP RSS订阅源的性能', 'link' => 'https://example.com/article/3', 'description' => '缓存和数据库优化是提升RSS订阅源性能的关键。', 'pubDate' => time(), // 现在 ], ]; } $articles = getLatestArticles(); $dom = new DOMDocument('1.0', 'UTF-8'); $dom->formatOutput = true; // 让输出的XML更易读 $rss = $dom->createElement('rss'); $rss->setAttribute('version', '2.0'); $dom->appendChild($rss); $channel = $dom->createElement('channel'); $rss->appendChild($channel); // 频道信息 $channel->appendChild($dom->createElement('title', '我的网站最新更新')); $channel->appendChild($dom->createElement('link', 'https://example.com/')); $channel->appendChild($dom->createElement('description', '这里是我的网站最新的文章和动态。')); $channel->appendChild($dom->createElement('language', 'zh-cn')); // 频道发布日期取最新文章的日期,如果文章为空则取当前时间 $latestPubDate = !empty($articles) ? max(array_column($articles, 'pubDate')) : time(); $channel->appendChild($dom->createElement('pubDate', date(DATE_RSS, $latestPubDate))); // 添加文章项目 foreach ($articles as $article) { $item = $dom->createElement('item'); $channel->appendChild($item); $item->appendChild($dom->createElement('title', htmlspecialchars($article['title'], ENT_XML1 | ENT_QUOTES, 'UTF-8'))); $item->appendChild($dom->createElement('link', htmlspecialchars($article['link'], ENT_XML1 | ENT_QUOTES, 'UTF-8'))); $item->appendChild($dom->createElement('description', htmlspecialchars($article['description'], ENT_XML1 | ENT_QUOTES, 'UTF-8'))); $item->appendChild($dom->createElement('pubDate', date(DATE_RSS, $article['pubDate']))); // 更多可选标签如 <author>, <guid> 等可以根据需要添加 } echo $dom->saveXML(); ?></pre><p>这个示例只是一个骨架,实际项目中,你可能还需要处理更复杂的HTML内容(CDATA包裹)、图片、分类等。但核心思路,我认为,就是将动态数据“翻译”成XML语言,并让订阅器能“听懂”。</p><h3>PHP生成RSS订阅源需要哪些核心技术栈?</h3><p>要说PHP生成RSS订阅源的核心技术栈,其实并不复杂,主要围绕PHP语言本身和一些基础的网络与数据处理知识展开。在我看来,它更像是一项“集成”而非“发明”的工作。</p><p>首先,<strong>PHP语言</strong>是毋庸置疑的核心。你需要对PHP的基本语法、文件操作(如果</p><p>好了,本文到此结束,带大家了解了《PHP生成RSS订阅动态指南》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!</p> </div> <div class="labsList"> <a href="javascript:;" title="php动态网页设计">php动态网页设计</a> </div> <div class="cateBox"> <div class="cateItem"> <a href="/article/447543.html" title="Java抽象方法定义与使用详解" class="img_box"> <img src="/uploads/20260106/1767665922695c7102eff5c.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="Java抽象方法定义与使用详解">Java抽象方法定义与使用详解 </a> <dl> <dt class="lineOverflow"><a href="/article/447543.html" title="Java抽象方法定义与使用详解" class="aBlack">上一篇<i></i></a></dt> <dd class="lineTwoOverflow">Java抽象方法定义与使用详解</dd> </dl> </div> <div class="cateItem"> <a href="/article/447545.html" title="DJ如何合成HTML5音频视频格式" class="img_box"> <img src="/uploads/20260106/1767665922695c7102e9958.png" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="DJ如何合成HTML5音频视频格式"> </a> <dl> <dt class="lineOverflow"><a href="/article/447545.html" class="aBlack" title="DJ如何合成HTML5音频视频格式">下一篇<i></i></a></dt> <dd class="lineTwoOverflow">DJ如何合成HTML5音频视频格式</dd> </dl> </div> </div> </div> </div> <div class="leftContBox pt0"> <div class="pdl20"> <div class="contTit"> <a href="/articlelist.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit">最新文章</div> </div> </div> <ul class="newArticleList"> <li> <div class="contBox"> <a href="/article/451080.html" class="img_box" title="PHP不区分大小写的字符串替换函数详解"> <img src="/uploads/20260108/1767887491695fd28366944.png" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP不区分大小写的字符串替换函数详解"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  2小时前  |   <a href="javascript:;" class="aLightGray" title="PHP字符串">PHP字符串</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/451080.html" class="aBlack" target="_blank" title="PHP不区分大小写的字符串替换函数详解">PHP不区分大小写的字符串替换函数详解</a> </dt> <dd class="cont2"> <span><i class="view"></i>490浏览</span> <span class="collectBtn user_collection" data-id="451080" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/451066.html" class="img_box" title="PHP批量修改文件后缀名教程与代码分享"> <img src="/uploads/20260108/1767886901695fd035721a5.png" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP批量修改文件后缀名教程与代码分享"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  3小时前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/451066.html" class="aBlack" target="_blank" title="PHP批量修改文件后缀名教程与代码分享">PHP批量修改文件后缀名教程与代码分享</a> </dt> <dd class="cont2"> <span><i class="view"></i>243浏览</span> <span class="collectBtn user_collection" data-id="451066" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/451028.html" class="img_box" title="PHP插入图片的简单方法"> <img src="/uploads/20260108/1767885007695fc8cfb2b60.png" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP插入图片的简单方法"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  3小时前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/451028.html" class="aBlack" target="_blank" title="PHP插入图片的简单方法">PHP插入图片的简单方法</a> </dt> <dd class="cont2"> <span><i class="view"></i>484浏览</span> <span class="collectBtn user_collection" data-id="451028" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/451002.html" class="img_box" title="PHP调用API获取用户行为数据方法"> <img src="/uploads/20260108/1767883601695fc351dbb14.png" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP调用API获取用户行为数据方法"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  4小时前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/451002.html" class="aBlack" target="_blank" title="PHP调用API获取用户行为数据方法">PHP调用API获取用户行为数据方法</a> </dt> <dd class="cont2"> <span><i class="view"></i>100浏览</span> <span class="collectBtn user_collection" data-id="451002" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/450975.html" class="img_box" title="PHP安装Redis扩展详细教程"> <img src="/uploads/20260108/1767882341695fbe6501fc6.png" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP安装Redis扩展详细教程"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  4小时前  |   <a href="javascript:;" class="aLightGray" title="php怎么安装">php怎么安装</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/450975.html" class="aBlack" target="_blank" title="PHP安装Redis扩展详细教程">PHP安装Redis扩展详细教程</a> </dt> <dd class="cont2"> <span><i class="view"></i>362浏览</span> <span class="collectBtn user_collection" data-id="450975" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/450942.html" class="img_box" title="PHP静态缓存实现与设置方法"> <img src="/uploads/20260108/1767880780695fb84c20cf6.png" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP静态缓存实现与设置方法"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  4小时前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/450942.html" class="aBlack" target="_blank" title="PHP静态缓存实现与设置方法">PHP静态缓存实现与设置方法</a> </dt> <dd class="cont2"> <span><i class="view"></i>236浏览</span> <span class="collectBtn user_collection" data-id="450942" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/450932.html" class="img_box" title="PHP订单日志防篡改方法解析"> <img src="/uploads/20260108/1767880294695fb66606620.jpg" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP订单日志防篡改方法解析"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  4小时前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/450932.html" class="aBlack" target="_blank" title="PHP订单日志防篡改方法解析">PHP订单日志防篡改方法解析</a> </dt> <dd class="cont2"> <span><i class="view"></i>237浏览</span> <span class="collectBtn user_collection" data-id="450932" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/450861.html" class="img_box" title="PHP源码安装教程与步骤详解"> <img src="/uploads/20260108/1767876877695fa90d9e7a8.jpg" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP源码安装教程与步骤详解"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  5小时前  |   <a href="javascript:;" class="aLightGray" title="PHP源码">PHP源码</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/450861.html" class="aBlack" target="_blank" title="PHP源码安装教程与步骤详解">PHP源码安装教程与步骤详解</a> </dt> <dd class="cont2"> <span><i class="view"></i>354浏览</span> <span class="collectBtn user_collection" data-id="450861" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/450859.html" class="img_box" title="Bootstrap模态框禁用确认按钮技巧"> <img src="/uploads/20260108/1767876883695fa91329209.jpg" onerror="this.src='/assets/images/moren/morentu.png'" alt="Bootstrap模态框禁用确认按钮技巧"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  5小时前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/450859.html" class="aBlack" target="_blank" title="Bootstrap模态框禁用确认按钮技巧">Bootstrap模态框禁用确认按钮技巧</a> </dt> <dd class="cont2"> <span><i class="view"></i>106浏览</span> <span class="collectBtn user_collection" data-id="450859" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/450853.html" class="img_box" title="PHP日志记录:Monolog使用教程"> <img src="/uploads/20260108/1767876527695fa7afb3bdf.png" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP日志记录:Monolog使用教程"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  6小时前  |   <a href="javascript:;" class="aLightGray" title="PHP教程">PHP教程</a> <a href="javascript:;" class="aLightGray" title="php格式">php格式</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/450853.html" class="aBlack" target="_blank" title="PHP日志记录:Monolog使用教程">PHP日志记录:Monolog使用教程</a> </dt> <dd class="cont2"> <span><i class="view"></i>314浏览</span> <span class="collectBtn user_collection" data-id="450853" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/450833.html" class="img_box" title="PHP数据库安全删除数据操作指南"> <img src="/uploads/20260108/1767875559695fa3e7b8454.png" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP数据库安全删除数据操作指南"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  6小时前  |   <a href="javascript:;" class="aLightGray" title="PHP数据库">PHP数据库</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/450833.html" class="aBlack" target="_blank" title="PHP数据库安全删除数据操作指南">PHP数据库安全删除数据操作指南</a> </dt> <dd class="cont2"> <span><i class="view"></i>238浏览</span> <span class="collectBtn user_collection" data-id="450833" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/450832.html" class="img_box" title="PHP常量定义方法全解析"> <img src="/uploads/20260108/1767875500695fa3acaf1e2.jpg" onerror="this.src='/assets/images/moren/morentu.png'" alt="PHP常量定义方法全解析"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/84_new_0_1.html" class="aLightGray" title="php教程">php教程</a>   |  6小时前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/450832.html" class="aBlack" target="_blank" title="PHP常量定义方法全解析">PHP常量定义方法全解析</a> </dt> <dd class="cont2"> <span><i class="view"></i>393浏览</span> <span class="collectBtn user_collection" data-id="450832" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> </ul> </div> </div> <div class="mainRight"> <!-- 右侧广告位banner --> <div class="rightContBox" style="margin-top: 0px;"> <div class="rightTit"> <a href="/courselist.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit lineOverflow">课程推荐</div> </div> <ul class="lessonRecomRList"> <li> <a href="/course/9.html" class="img_box" target="_blank" title="前端进阶之JavaScript设计模式"> <img src="/uploads/20221222/52fd0f23a454c71029c2c72d206ed815.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="前端进阶之JavaScript设计模式"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/9.html" target="_blank" class="aBlack" title="前端进阶之JavaScript设计模式">前端进阶之JavaScript设计模式</a></dt> <dd class="cont1 lineTwoOverflow"> 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。 </dd> <dd class="cont2">543次学习</dd> </dl> </li> <li> <a href="/course/2.html" class="img_box" target="_blank" title="GO语言核心编程课程"> <img src="/uploads/20221221/634ad7404159bfefc6a54a564d437b5f.png" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="GO语言核心编程课程"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/2.html" target="_blank" class="aBlack" title="GO语言核心编程课程">GO语言核心编程课程</a></dt> <dd class="cont1 lineTwoOverflow"> 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。 </dd> <dd class="cont2">516次学习</dd> </dl> </li> <li> <a href="/course/74.html" class="img_box" target="_blank" title="简单聊聊mysql8与网络通信"> <img src="/uploads/20240103/bad35fe14edbd214bee16f88343ac57c.png" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="简单聊聊mysql8与网络通信"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/74.html" target="_blank" class="aBlack" title="简单聊聊mysql8与网络通信">简单聊聊mysql8与网络通信</a></dt> <dd class="cont1 lineTwoOverflow"> 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让 </dd> <dd class="cont2">500次学习</dd> </dl> </li> <li> <a href="/course/57.html" class="img_box" target="_blank" title="JavaScript正则表达式基础与实战"> <img src="/uploads/20221226/bbe4083bb3cb0dd135fb02c31c3785fb.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="JavaScript正则表达式基础与实战"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/57.html" target="_blank" class="aBlack" title="JavaScript正则表达式基础与实战">JavaScript正则表达式基础与实战</a></dt> <dd class="cont1 lineTwoOverflow"> 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。 </dd> <dd class="cont2">487次学习</dd> </dl> </li> <li> <a href="/course/28.html" class="img_box" target="_blank" title="从零制作响应式网站—Grid布局"> <img src="/uploads/20221223/ac110f88206daeab6c0cf38ebf5fe9ed.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="从零制作响应式网站—Grid布局"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/28.html" target="_blank" class="aBlack" title="从零制作响应式网站—Grid布局">从零制作响应式网站—Grid布局</a></dt> <dd class="cont1 lineTwoOverflow"> 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。 </dd> <dd class="cont2">485次学习</dd> </dl> </li> </ul> </div> <div class="rightContBox"> <div class="rightTit"> <a href="/ai.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit lineOverflow">AI推荐</div> </div> <ul class="lessonRecomRList"> <li> <a href="/ai/13100.html" target="_blank" title="ChatExcel酷表:告别Excel难题,北大团队AI助手助您轻松处理数据" class="img_box"> <img src="/uploads/20251027/176155320368ff2b3345c06.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="ChatExcel酷表:告别Excel难题,北大团队AI助手助您轻松处理数据" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13100.html" class="aBlack" target="_blank" title="ChatExcel酷表">ChatExcel酷表</a></dt> <dd class="cont1 lineTwoOverflow"> ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。 </dd> <dd class="cont2">3594次使用</dd> </dl> </li> <li> <a href="/ai/13099.html" target="_blank" title="Any绘本:开源免费AI绘本创作工具深度解析" class="img_box"> <img src="/uploads/20251023/176120760368f9e5333da5f.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="Any绘本:开源免费AI绘本创作工具深度解析" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13099.html" class="aBlack" target="_blank" title="Any绘本">Any绘本</a></dt> <dd class="cont1 lineTwoOverflow"> 探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。 </dd> <dd class="cont2">3827次使用</dd> </dl> </li> <li> <a href="/ai/13098.html" target="_blank" title="可赞AI:AI驱动办公可视化智能工具,一键高效生成文档图表脑图" class="img_box"> <img src="/uploads/20251021/176103600268f746e238bb8.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="可赞AI:AI驱动办公可视化智能工具,一键高效生成文档图表脑图" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13098.html" class="aBlack" target="_blank" title="可赞AI">可赞AI</a></dt> <dd class="cont1 lineTwoOverflow"> 可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。 </dd> <dd class="cont2">3803次使用</dd> </dl> </li> <li> <a href="/ai/13097.html" target="_blank" title="星月写作:AI网文创作神器,助力爆款小说速成" class="img_box"> <img src="/uploads/20251014/176043000368ee07b3159d6.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="星月写作:AI网文创作神器,助力爆款小说速成" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13097.html" class="aBlack" target="_blank" title="星月写作">星月写作</a></dt> <dd class="cont1 lineTwoOverflow"> 星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。 </dd> <dd class="cont2">4955次使用</dd> </dl> </li> <li> <a href="/ai/13096.html" target="_blank" title="MagicLight.ai:叙事驱动AI动画视频创作平台 | 高效生成专业级故事动画" class="img_box"> <img src="/uploads/20251014/176040000268ed9282edf80.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="MagicLight.ai:叙事驱动AI动画视频创作平台 | 高效生成专业级故事动画" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13096.html" class="aBlack" target="_blank" title="MagicLight">MagicLight</a></dt> <dd class="cont1 lineTwoOverflow"> MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。 </dd> <dd class="cont2">4169次使用</dd> </dl> </li> </ul> </div> <!-- 相关文章 --> <div class="rightContBox"> <div class="rightTit"> <a href="/articlelist.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit lineOverflow">相关文章</div> </div> <ul class="aboutArticleRList"> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/61908.html" class="aBlack" title="PHP技术的高薪回报与发展前景">PHP技术的高薪回报与发展前景</a></dt> <dd> <span class="left">2023-10-08</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/62538.html" class="aBlack" title="基于 PHP 的商场优惠券系统开发中的常见问题解决方案">基于 PHP 的商场优惠券系统开发中的常见问题解决方案</a></dt> <dd> <span class="left">2023-10-05</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/62741.html" class="aBlack" title="如何使用PHP开发简单的在线支付功能">如何使用PHP开发简单的在线支付功能</a></dt> <dd> <span class="left">2023-09-27</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/62881.html" class="aBlack" title="PHP消息队列开发指南:实现分布式缓存刷新器">PHP消息队列开发指南:实现分布式缓存刷新器</a></dt> <dd> <span class="left">2023-09-30</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/63734.html" class="aBlack" title="如何在PHP微服务中实现分布式任务分配和调度">如何在PHP微服务中实现分布式任务分配和调度</a></dt> <dd> <span class="left">2023-10-04</span> <span class="right">501浏览</span> </dd> </dl> </li> </ul> </div> </div> </div> <div class="footer"> <div class="footerIn"> <div class="footLeft"> <div class="linkBox"> <a href="/about/1.html" target="_blank" class="aBlack" title="关于我们">关于我们</a> <a href="/about/5.html" target="_blank" class="aBlack" title="免责声明">免责声明</a> <a href="#" class="aBlack" title="意见反馈">意见反馈</a> <a href="/about/2.html" class="aBlack" target="_blank" title="联系我们">联系我们</a> <a href="/send.html" class="aBlack" title="广告合作">内容提交</a> </div> <div class="footTip">Golang学习网:公益在线Go学习平台,帮助Go学习者快速成长!</div> <div class="shareBox"> <span><i class="qq"></i>技术交流群</span> </div> <div class="copyRight"> Copyright 2023 http://www.17golang.com/ All Rights Reserved | <a href="https://beian.miit.gov.cn/" target="_blank" title="备案">苏ICP备2023003363号-1</a> </div> </div> <div class="footRight"> <ul class="encodeList"> <li> <div class="encodeImg"> <img src="/assets/examples/qrcode_for_gh.jpg" alt="Golang学习网"> </div> <div class="tit">关注公众号</div> <div class="tip">Golang学习网</div> </li> <div class="clear"></div> </ul> </div> <div class="clear"></div> </div> </div> <!-- 微信登录弹窗 --> <style> .popupBg .n-error{ color: red; } </style> <div class="popupBg"> <div class="loginBoxBox"> <div class="imgbg"> <img src="/assets/images/leftlogo.jpg" alt=""> </div> <!-- 微信登录 --> <div class="loginInfo encodeLogin" style="display: none;"> <div class="closeIcon" onclick="$('.popupBg').hide();"></div> <div class="changeLoginType cursorPointer create_wxqrcode" onclick="$('.loginInfo').hide();$('.passwordLogin').show();"> <div class="tip">密码登录在这里</div> </div> <div class="encodeInfo"> <div class="tit"><i></i> 微信扫码登录或注册</div> <div class="encodeImg"> <span id="wx_login_qrcode"><img src="/assets/examples/code.png" alt="二维码"></span> <!-- <div class="refreshBox"> <p>二维码失效</p> <button type="button" class="create_wxqrcode">刷新1111</button> </div> --> </div> <div class="tip">打开微信扫一扫,快速登录/注册</div> </div> <div class="beforeLoginTip">登录即同意 <a href="#" class="aBlue" title="用户协议">用户协议</a> 和 <a href="#" class="aBlue" title="隐私政策">隐私政策</a></div> </div> <!-- 密码登录 --> <div class="loginInfo passwordLogin"> <div class="closeIcon" onclick="$('.popupBg').hide();"></div> <div class="changeLoginType cursorPointer create_wxqrcode" onclick="$('.loginInfo').hide();$('.encodeLogin').show();"> <div class="tip">微信登录更方便</div> </div> <div class="passwordInfo"> <ul class="logintabs selfTabMenu"> <li class="selfTabItem loginFormLi curr">密码登录</li> <li class="selfTabItem registerFormBox ">注册账号</li> </ul> <div class="selfTabContBox"> <div class="selfTabCont loginFormBox" style="display: block;"> <form name="form" id="login-form" class="form-vertical form" method="POST" action="/index/user/login"> <input type="hidden" name="url" value="//www.17golang.com/article/447544.html"/> <input type="hidden" name="__token__" value="68672aa34e9eabf1d8afd34476f2290c" /> <div class="form-group" style="height:70px;"> <input class="form-control" id="account" type="text" name="account" value="" data-rule="required" placeholder="邮箱/用户名" autocomplete="off"> </div> <div class="form-group" style="height:70px;"> <input class="form-control" id="password" type="password" name="password" data-rule="required;password" placeholder="密码" autocomplete="off"> </div> <div class="codeBox" style="height:70px;"> <div class="form-group" style="height:70px; width:205px; float: left;"> <input type="text" name="captcha" class="form-control" placeholder="验证码" data-rule="required;length(4)" /> </div> <span class="input-group-btn" style="padding:0;border:none;"> <img src="/captcha.html" width="100" height="45" onclick="this.src = '/captcha.html?r=' + Math.random();"/> </span> </div> <div class="other"> <a href="#" class="forgetPwd aGray" onclick="$('.loginInfo').hide();$('.passwordForget').show();" title="忘记密码">忘记密码</a> </div> <div class="loginBtn mt25"> <button type="submit">登录</button> </div> </form> </div> <div class="selfTabCont registerFormBox" style="display: none;"> <form name="form1" id="register-form" class="form-vertical form" method="POST" action="/index/user/register"> <input type="hidden" name="invite_user_id" value="0"/> <input type="hidden" name="url" value="//www.17golang.com/article/447544.html"/> <input type="hidden" name="__token__" value="68672aa34e9eabf1d8afd34476f2290c" /> <div class="form-group" style="height:70px;"> <input type="text" name="email" id="email2" data-rule="required;email" class="form-control" placeholder="邮箱"> </div> <div class="form-group" style="height:70px;"> <input type="text" id="username" name="username" data-rule="required;username" class="form-control" placeholder="用户名必须3-30个字符"> </div> <div class="form-group" style="height:70px;"> <input type="password" id="password2" name="password" data-rule="required;password" class="form-control" placeholder="密码必须6-30个字符"> </div> <div class="codeBox" style="height:70px;"> <div class="form-group" style="height:70px; width:205px; float: left;"> <input type="text" name="captcha" class="form-control" placeholder="验证码" data-rule="required;length(4)" /> </div> <span class="input-group-btn" style="padding:0;border:none;"> <img src="/captcha.html" width="100" height="45" onclick="this.src = '/captcha.html?r=' + Math.random();"/> </span> </div> <div class="loginBtn"> <button type="submit">注册</button> </div> </form> </div> </div> </div> <div class="beforeLoginTip">登录即同意 <a href="https://www.17golang.com/about/3.html" target="_blank" class="aBlue" title="用户协议">用户协议</a> 和 <a href="https://www.17golang.com/about/4.html" target="_blank" class="aBlue" title="隐私政策">隐私政策</a></div> </div> <!-- 重置密码 --> <div class="loginInfo passwordForget"> <div class="closeIcon" onclick="$('.popupBg').hide();"></div> <div class="returnLogin cursorPointer" onclick="$('.passwordForget').hide();$('.passwordLogin').show();">返回登录</div> <div class="passwordInfo"> <ul class="logintabs selfTabMenu"> <li class="selfTabItem">重置密码</li> </ul> <div class="selfTabContBox"> <div class="selfTabCont"> <form id="resetpwd-form" class="form-horizontal form-layer nice-validator n-default n-bootstrap form" method="POST" action="/api/user/resetpwd.html" novalidate="novalidate"> <div style="height:70px;"> <input type="text" class="form-control" id="email" name="email" value="" placeholder="输入邮箱" aria-invalid="true"> </div> <div class="codeBox" style="height:70px;"> <div class="form-group" style="height:70px; width:205px; float: left;"> <input type="text" name="captcha" class="form-control" placeholder="验证码" /> </div> <span class="input-group-btn" style="padding:0;border:none;"> <a href="javascript:;" class="btn btn-primary btn-captcha cursorPointer" style="background: #2080F8; border-radius: 4px; color: #fff; padding: 12px; position: absolute;" data-url="/api/ems/send.html" data-type="email" data-event="resetpwd">发送验证码</a> </span> </div> <input type="password" class="form-control" id="newpassword" name="newpassword" value="" placeholder="请输入6-18位密码"> <div class="loginBtn mt25"> <button type="submit">重置密码</button> </div> </form> </div> </div> </div> </div> </div> </div> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?3dc5666f6478c7bf39cd5c91e597423d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script src="/assets/js/require.js" data-main="/assets/js/require-frontend.js?v=1671101972"></script> </body> </html>