0

0

Qt如何生成RSS订阅?

月夜之吻

月夜之吻

发布时间:2025-09-09 11:19:01

|

628人浏览过

|

来源于php中文网

原创

答案:Qt通过QXmlStreamWriter等XML工具生成符合RSS 2.0规范的订阅源,核心元素包括title、link、description、pubDate、lastBuildDate和guid,确保信息结构化与可解析性;QXmlStreamWriter适合高效生成RSS,而QDomDocument适用于需修改的XML操作;生成的RSS文件应托管于稳定URL的Web服务器并定期更新,保证订阅者及时获取内容。

qt如何生成rss订阅?

Qt本身并没有一个直接的“生成RSS”的模块或API,但通过其强大的XML处理能力(比如

QXmlStreamWriter
QDomDocument
)和文件I/O,完全可以构建一个符合RSS 2.0规范的订阅源。这本质上就是将你的数据以特定XML格式输出。

在Qt中生成RSS订阅,主要涉及以下几个步骤和考量:

首先,你需要定义你的数据源。这些数据可能是你的博客文章列表、新闻更新、产品发布信息,或者任何你希望通过RSS推送的内容。每条内容通常需要包含标题、链接、描述和发布日期等信息。

接着,利用Qt的XML写入工具来构造RSS的XML结构。

QXmlStreamWriter
是一个非常高效且推荐的选择,因为它以流式方式写入,内存占用小,尤其适合生成大型XML文件。

以下是一个简化的代码示例,展示如何使用

QXmlStreamWriter
来生成一个基本的RSS 2.0文件:

#include 
#include 
#include 
#include 
#include 

// 模拟你的数据结构
struct Article {
    QString title;
    QString link;
    QString description;
    QDateTime pubDate;
    QString guid; // 全局唯一标识符
};

bool generateRssFeed(const QString& filePath, const QList
& articles) { QFile file(filePath); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { qWarning() << "无法打开文件进行写入:" << filePath; return false; } QXmlStreamWriter xmlWriter(&file); xmlWriter.setAutoFormatting(true); // 启用自动格式化,使XML更易读 xmlWriter.writeStartDocument(); xmlWriter.writeDTD(""); xmlWriter.writeStartElement("rss"); xmlWriter.writeAttribute("version", "2.0"); xmlWriter.writeStartElement("channel"); xmlWriter.writeTextElement("title", "我的个人博客更新"); xmlWriter.writeTextElement("link", "http://www.example.com/blog"); xmlWriter.writeTextElement("description", "这里是我的最新文章和想法分享。"); xmlWriter.writeTextElement("language", "zh-cn"); xmlWriter.writeTextElement("pubDate", QDateTime::currentDateTimeUtc().toString(Qt::RFC2822Date)); xmlWriter.writeTextElement("lastBuildDate", QDateTime::currentDateTimeUtc().toString(Qt::RFC2822Date)); xmlWriter.writeTextElement("generator", "Qt RSS Generator"); for (const Article& article : articles) { xmlWriter.writeStartElement("item"); xmlWriter.writeTextElement("title", article.title); xmlWriter.writeTextElement("link", article.link); xmlWriter.writeTextElement("description", article.description); xmlWriter.writeTextElement("pubDate", article.pubDate.toString(Qt::RFC2822Date)); xmlWriter.writeTextElement("guid", article.guid); xmlWriter.writeEndElement(); // item } xmlWriter.writeEndElement(); // channel xmlWriter.writeEndElement(); // rss xmlWriter.writeEndDocument(); if (xmlWriter.hasError()) { qWarning() << "写入XML时发生错误:" << xmlWriter.errorString(); return false; } file.close(); return true; } // int main(int argc, char *argv[]) { // QCoreApplication a(argc, argv); // // QList
myArticles; // myArticles << Article{"第一篇文章", "http://www.example.com/blog/article1", "这是第一篇文章的摘要。", QDateTime::currentDateTimeUtc().addDays(-2), "http://www.example.com/blog/article1"} // << Article{"第二篇文章", "http://www.example.com/blog/article2", "这是第二篇文章的摘要,它更新了。", QDateTime::currentDateTimeUtc().addDays(-1), "http://www.example.com/blog/article2"}; // // if (generateRssFeed("feed.xml", myArticles)) { // qDebug() << "RSS feed 生成成功: feed.xml"; // } else { // qDebug() << "RSS feed 生成失败。"; // } // // return a.exec(); // }

这个例子提供了一个基础框架,你可以根据自己的需求扩展

Article
结构,比如加入作者、分类、图片等更多字段,并在XML中对应地写入。关键在于遵循RSS 2.0的规范,确保生成的XML能够被各种阅读器正确解析。

RSS订阅的核心构成元素有哪些?为什么这些元素很重要?

要说RSS的核心,那肯定离不开它的XML结构。理解这些元素,就像是理解了RSS的“语言”,才能让你的订阅源被正确地解析和展示。

一个标准的RSS 2.0订阅源,最外层是

标签,它会有一个
version="2.0"
的属性。紧接着是
标签,这代表了整个订阅源的元信息。在
内部,你会看到几个非常关键的元素:

  • </pre></strong>: 这是整个订阅源的标题,比如“我的博客”、“每日新闻精选”。它告诉订阅者这个源是关于什么的。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;"><link></pre></strong>: 指向你的网站或博客的主页URL。订阅者如果想访问你的网站,点击这里就能跳转。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;"><description></pre></strong>: 对整个订阅源的简短描述,进一步说明其内容或目的。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;"><language></pre></strong>: 声明内容的语言,例如<pre class="brush:php;toolbar:false;">zh-cn</pre>(简体中文)或<pre class="brush:php;toolbar:false;">en-us</pre>(美式英文),这有助于阅读器进行本地化处理。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;"><pubDate></pre></strong> 和 <strong><pre class="brush:php;toolbar:false;"><lastBuildDate></pre></strong>: 分别表示订阅源发布的时间和最后一次构建(更新)的时间。这两个时间戳非常重要,订阅器会根据它们来判断是否有新的内容,并决定何时再次抓取。</li>
    </ul>
    <p>然后,就是订阅源的“肉”——<strong><pre class="brush:php;toolbar:false;"><item></pre></strong>标签,每个<pre class="brush:php;toolbar:false;"><item></pre>代表一条独立的更新或文章。每个<pre class="brush:php;toolbar:false;"><item></pre>内部通常包含:</p>
    <ul>
    <li>
    <strong><pre class="brush:php;toolbar:false;"><title></pre></strong>: 单个项目的标题,比如“我的最新文章:Qt与AI的结合”。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;"><link></pre></strong>: 该项目的直接URL,点击后能直接跳转到这篇文章或内容的详情页。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;"><description></pre></strong>: 项目的摘要或完整内容。这里可以是纯文本,也可以是包含HTML标签的富文本,但通常建议是摘要,因为有些阅读器可能不会显示完整的HTML。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;"><pubDate></pre></strong>: 该项目(文章)的发布时间。这个时间戳对于按时间排序和判断新旧至关重要。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;"><guid></pre> (Global Unique Identifier)</strong>: 全局唯一标识符。这是非常重要的一个元素,它用于唯一标识一个项目。即使项目的标题或链接发生了变化,<pre class="brush:php;toolbar:false;">guid</pre>也应该保持不变。订阅器会根据<pre class="brush:php;toolbar:false;">guid</pre>来判断一个项目是否是全新的,还是已经存在但更新了。如果一个项目的<pre class="brush:php;toolbar:false;">guid</pre>改变了,订阅器可能会将其视为一个新项目,导致重复显示。</li>
    </ul>
    <p>这些元素之所以重要,是因为它们共同构建了一个结构化、可机器读取的“新闻头条”列表。没有它们,订阅器就无法理解你的内容,也就无法有效地聚合、展示和更新你的信息。它们是RSS协议的基石,确保了信息分发的标准化和互操作性。</p>
    <h3>在Qt中处理XML时,QDomDocument和QXmlStreamWriter有什么区别?我该如何选择?</h3>
    <p>在Qt中处理XML,<pre class="brush:php;toolbar:false;">QDomDocument</pre>和<pre class="brush:php;toolbar:false;">QXmlStreamWriter</pre>(以及它的读取 counterpart <pre class="brush:php;toolbar:false;">QXmlStreamReader</pre>)是两种非常不同的工具,它们各自有最适合的应用场景。理解它们的区别,能帮助你做出更明智的选择。</p>
    <p><strong><pre class="brush:php;toolbar:false;">QDomDocument</pre></strong></p>
    <p><pre class="brush:php;toolbar:false;">QDomDocument</pre>是基于DOM(Document Object Model)模型的实现。它的核心思想是<strong>将整个XML文档加载到内存中,构建成一个树状结构</strong>。你可以把XML想象成一棵家谱,每个标签都是一个节点,有父节点、子节点和兄弟节点。</p>
    <ul>
    <li>
    <p><strong>优点:</strong></p><div class="aritcle_card flexRow">
    							<div class="artcardd flexRow">
    								<a class="aritcle_card_img" href="/xiazai/code/9331" title="情感家园企业站5.0 多语言多风格版"><img
    										src="https://img.php.cn/upload/webcode/000/000/014/175868640629271.png" alt="情感家园企业站5.0 多语言多风格版"></a>
    								<div class="aritcle_card_info flexColumn">
    									<a href="/xiazai/code/9331" title="情感家园企业站5.0 多语言多风格版">情感家园企业站5.0 多语言多风格版</a>
    									<p>一套面向小企业用户的企业网站程序!功能简单,操作简单。实现了小企业网站的很多实用的功能,如文章新闻模块、图片展示、产品列表以及小型的下载功能,还同时增加了邮件订阅等相应模块。公告,友情链接等这些通用功能本程序也同样都集成了!同时本程序引入了模块功能,只要在系统默认模板上创建模块,可以在任何一个语言环境(或任意风格)的适当位置进行使用!</p>
    								</div>
    								<a href="/xiazai/code/9331" title="情感家园企业站5.0 多语言多风格版" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
    							</div>
    						</div>
    <ul>
    <li>
    <strong>易于导航和修改:</strong> 因为整个文档都在内存中,你可以非常方便地通过节点(<pre class="brush:php;toolbar:false;">QDomElement</pre>, <pre class="brush:php;toolbar:false;">QDomNode</pre>等)进行遍历、查询、添加、删除或修改任何部分。这就像你有一张完整的地图,可以随意走到任何地方。</li>
    <li>
    <strong>支持XPath(有限):</strong> 虽然Qt本身没有完整的XPath实现,但<pre class="brush:php;toolbar:false;">QDomDocument</pre>的API设计让你可以模拟一些XPath的查询逻辑。</li>
    <li>
    <strong>结构清晰:</strong> 对于理解XML的层次结构,它提供了一个直观的编程模型。</li>
    </ul>
    </li>
    <li>
    <p><strong>缺点:</strong></p>
    <ul>
    <li>
    <strong>内存占用大:</strong> 这是它最显著的缺点。对于非常大的XML文件,<pre class="brush:php;toolbar:false;">QDomDocument</pre>会消耗大量的内存,因为它需要把整个文件解析并存储为一个对象树。</li>
    <li>
    <strong>性能开销:</strong> 加载和构建DOM树本身就需要时间,对于频繁生成或处理大文件的场景,性能可能不尽如人意。</li>
    </ul>
    </li>
    </ul>
    <p><strong><pre class="brush:php;toolbar:false;">QXmlStreamWriter</pre></strong></p>
    <p><pre class="brush:php;toolbar:false;">QXmlStreamWriter</pre>(以及<pre class="brush:php;toolbar:false;">QXmlStreamReader</pre>)是基于流(Stream)模型的实现。它的核心思想是<strong>按顺序处理XML数据,而不是一次性加载整个文档</strong>。</p>
    <ul>
    <li>
    <p><strong>优点:</strong></p>
    <ul>
    <li>
    <strong>内存效率高:</strong> 这是它最大的优势。它不会将整个XML文档加载到内存中,而是在写入时逐个元素地处理。这对于生成或解析非常大的XML文件至关重要。</li>
    <li>
    <strong>性能优异:</strong> 由于不需要构建复杂的内存结构,它的写入速度通常比<pre class="brush:php;toolbar:false;">QDomDocument</pre>快得多。</li>
    <li>
    <strong>适用于顺序操作:</strong> 当你需要从头到尾地生成一个XML文件时,它的API非常直观和高效。</li>
    </ul>
    </li>
    <li>
    <p><strong>缺点:</strong></p>
    <ul>
    <li>
    <strong>不适合随机访问和修改:</strong> 一旦你写入了一个元素,就不能轻易地“返回”去修改它。这就像你正在写一本书,写完一页就不能再回去改上一页的内容了。</li>
    <li>
    <strong>代码可能更冗长:</strong> 相对于<pre class="brush:php;toolbar:false;">QDomDocument</pre>的树形操作,流式写入需要你更细致地控制每个元素的开始和结束。</li>
    </ul>
    </li>
    </ul>
    <p><strong>如何选择?</strong></p>
    <ul>
    <li>
    <strong>生成RSS订阅:</strong> 几乎毫无疑问,<strong><pre class="brush:php;toolbar:false;">QXmlStreamWriter</pre>是生成RSS订阅的最佳选择</strong>。RSS订阅的生成是一个典型的“从头到尾”的顺序写入过程。你从数据源(比如一个文章列表)获取数据,然后按照RSS的XML规范,逐个元素地写入到文件中。<pre class="brush:php;toolbar:false;">QXmlStreamWriter</pre>的高效率和低内存占用在这里表现得淋漓尽致,尤其当你的文章数量非常多时,它的优势会更加明显。</li>
    <li>
    <strong>解析和修改现有XML:</strong> 如果你需要解析一个已有的XML文件,并且可能需要修改其中的某些节点,或者进行复杂的查询,那么<pre class="brush:php;toolbar:false;">QDomDocument</pre>可能会更方便一些。但即便如此,对于解析,<pre class="brush:php;toolbar:false;">QXmlStreamReader</pre>也通常是首选,因为它同样具有内存效率高和速度快的优点。只有当你确实需要一个可修改的内存中XML树时,才考虑<pre class="brush:php;toolbar:false;">QDomDocument</pre>。</li>
    </ul>
    <p>在我个人的实践中,我很少会用<pre class="brush:php;toolbar:false;">QDomDocument</pre>来生成XML,它的性能瓶颈和内存消耗常常让人望而却步。对于生成任务,<pre class="brush:php;toolbar:false;">QXmlStreamWriter</pre>总是我的首选工具。</p>
    <h3>生成的RSS文件如何发布和更新,才能被订阅者正常访问?</h3>
    <p>生成了RSS文件,仅仅是完成了第一步。要让你的订阅者能够访问到它,并及时获取更新,你还需要考虑发布和更新的策略。这涉及到文件托管、URL稳定性以及更新机制。</p>
    <p><strong>发布策略:</strong></p>
    <ol>
    <li>
    <p><strong>静态文件托管在Web服务器上(最常见且推荐)</strong>
    这是最简单、最可靠的方式。你的Qt应用程序生成<pre class="brush:php;toolbar:false;">feed.xml</pre>文件后,你需要将其放置在一个可以被Web服务器(如Apache、Nginx)访问到的公共目录中。</p>
    <ul>
    <li>
    <strong>配置Web服务器:</strong> 确保你的Web服务器为<pre class="brush:php;toolbar:false;">.xml</pre>文件或你的RSS文件路径设置了正确的MIME类型。通常应该是<pre class="brush:php;toolbar:false;">application/rss+xml</pre>或<pre class="brush:php;toolbar:false;">application/xml</pre>。这很重要,因为它告诉<a style="color:#f60; text-decoration:underline;" title="浏览器" href="https://www.php.cn/zt/16180.html" target="_blank">浏览器</a>或RSS阅读器如何正确处理这个文件。</li>
    <li>
    <strong>文件路径:</strong> 选择一个稳定的URL,例如<pre class="brush:php;toolbar:false;">http://www.example.com/blog/feed.xml</pre>。一旦这个URL确定下来,就不要轻易改变,因为订阅者会记住它。</li>
    <li>
    <strong>优点:</strong> 简单、高效、Web服务器可以处理大量的并发请求,且通常有缓存机制。</li>
    <li>
    <strong>缺点:</strong> 每次更新都需要将新文件上传到服务器(可以通过自动化脚本或FTP/SCP实现)。</li>
    </ul>
    </li>
    <li>
    <p><strong>通过Qt应用程序直接提供(适用于特定场景)</strong>
    你可以让你的Qt应用程序本身作为一个简单的HTTP服务器,当有请求访问<pre class="brush:php;toolbar:false;">/feed.xml</pre>时,动态生成并返回RSS内容。这可以通过<pre class="brush:php;toolbar:false;">QTcpServer</pre>和<pre class="brush:php;toolbar:false;">QHttpRequestHeader</pre>等类来实现。</p>
    <ul>
    <li>
    <strong>优点:</strong> 实时性强,每次请求都能得到最新数据,无需额外的文件上传步骤。</li>
    <li>
    <strong>缺点:</strong> 实现相对复杂,需要处理HTTP协议、并发请求、错误处理等。如果请求量很大,应用程序可能会成为性能瓶颈,不如专业的Web服务器健壮。通常不建议用于高并发的生产环境。</li>
    </ul>
    </li>
    </ol>
    <p><strong>更新机制:</strong></p>
    <p>无论你选择哪种发布方式,定期更新RSS文件是核心。</p>
    <ol>
    <li>
    <p><strong>定时任务(Cron Job / QTimer)</strong>
    这是最常见的自动化更新方式。</p>
    <ul>
    <li>
    <strong>在服务器端:</strong> 如果你的Qt程序运行在服务器上,你可以设置一个<a style="color:#f60; text-decoration:underline;" title="操作系统" href="https://www.php.cn/zt/16016.html" target="_blank">操作系统</a>级别的定时任务(如Linux的cron job或Windows的任务计划程序),每隔一段时间(例如每小时、每天)执行你的Qt程序或一个脚本,让它重新生成<pre class="brush:php;toolbar:false;">feed.xml</pre>文件并覆盖旧文件。</li>
    <li>
    <strong>在Qt应用程序内部:</strong> 如果你的Qt应用程序是常驻运行的,你可以使用<pre class="brush:php;toolbar:false;">QTimer</pre>来定时触发RSS生成逻辑。例如,每隔30分钟,检查是否有新内容,如果有,就重新生成RSS文件。</li>
    </ul>
    </li>
    <li>
    <p><strong>事件驱动更新</strong>
    这是一种更精细的更新方式,适用于内容更新不频繁但需要即时推送的场景。</p>
    <ul>
    <li>
    <strong>内容发布时触发:</strong> 当你的博客发布新文章、新闻系统有新消息时,你的内容管理系统(CMS)或后台服务可以发送一个信号或调用一个API,触发你的Qt应用程序重新生成RSS文件。</li>
    <li>
    <strong>数据库更新监听:</strong> 如果你的内容存储在数据库中,你可以监听数据库的特定表的变化,一旦有插入、更新操作,就触发RSS生成。</li>
    </ul>
    </li>
    </ol>
    <p><strong>关键考量:</strong></p>
    <ul>
    <li>
    <strong>URL稳定性:</strong> 再次强调,RSS feed的URL一旦发布,就不要改变。订阅者会记住这个URL。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;">pubDate</pre> 和 <pre class="brush:php;toolbar:false;">lastBuildDate</pre>:</strong> 在生成RSS时,务必正确设置<pre class="brush:php;toolbar:false;"><channel></pre>下的<pre class="brush:php;toolbar:false;">lastBuildDate</pre>和<pre class="brush:php;toolbar:false;"><item></pre>下的<pre class="brush:php;toolbar:false;">pubDate</pre>。订阅器会根据这些时间戳来判断内容的新旧,避免重复抓取或显示。</li>
    <li>
    <strong><pre class="brush:php;toolbar:false;">guid</pre> 的唯一性和稳定性:</strong> 每个<pre class="brush:php;toolbar:false;"><item></pre>的<pre class="brush:php;toolbar:false;">guid</pre>必须是全局唯一的,并且一旦生成就不能改变。它是订阅器判断一个项目是否是新内容或已存在内容的关键。</li>
    <li>
    <strong>错误处理:</strong> 确保你的RSS生成代码能够处理数据为空、数据格式错误等情况,避免生成无效的XML文件。一个损坏的RSS文件会导致订阅者无法获取更新。</li>
    <li>
    <strong>缓存:</strong> Web服务器可能会缓存你的RSS文件。如果你的内容更新频率很高,你可能需要在Web服务器配置中调整缓存策略,或者在HTTP响应头中添加<pre class="brush:php;toolbar:false;">Cache-Control: no-cache</pre>或<pre class="brush:php;toolbar:false;">max-age=XXX</pre>等指令,以确保订阅者能尽快获取到最新版本。</li>
    </ul>
    <p>通过结合这些策略,你可以构建一个健壮的RSS发布和更新系统,让你的内容能够高效、稳定地分发给订阅者。</p>					</div>
    					<div class="artmoreart ">
    													<div class="artdp artptit"><span></span>
    								<p>相关文章</p>
    							</div>
    							<div class="artmores flexColumn">
    																	<a class="artmrlis flexRow" href="/faq/1489526.html" title="桌面端如何实现RSS阅读器?"><b></b>
    										<p class="overflowclass">桌面端如何实现RSS阅读器?</p>
    									</a>
    																	<a class="artmrlis flexRow" href="/faq/1903931.html" title="RSS和Atom有什么区别 订阅源XML格式比较"><b></b>
    										<p class="overflowclass">RSS和Atom有什么区别 订阅源XML格式比较</p>
    									</a>
    																	<a class="artmrlis flexRow" href="/faq/1864956.html" title="网站RSS源地址怎么找 如何订阅XML Feed"><b></b>
    										<p class="overflowclass">网站RSS源地址怎么找 如何订阅XML Feed</p>
    									</a>
    																	<a class="artmrlis flexRow" href="/faq/1853119.html" title="BizTalk Server是怎么处理XML消息的"><b></b>
    										<p class="overflowclass">BizTalk Server是怎么处理XML消息的</p>
    									</a>
    																	<a class="artmrlis flexRow" href="/faq/1837079.html" title="C#怎么用XSD验证XML文件的有效性"><b></b>
    										<p class="overflowclass">C#怎么用XSD验证XML文件的有效性</p>
    									</a>
    															</div>
    													<div class="artmoretabs flexRow">
    								<p>相关标签:</p>
    								<div class="mtbs flexRow">
    									<a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15718.html" target="_blank">linux</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15763.html" target="_blank">html</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15853.html" target="_blank">node</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15970.html" target="_blank">windows</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15972.html" target="_blank">apache</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15995.html" target="_blank">cms</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/16000.html" target="_blank">nginx</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/16016.html" target="_blank">操作系统</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/16180.html" target="_blank">浏览器</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=qt" target="_blank">qt</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=nginx" target="_blank">nginx</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=html" target="_blank">html</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=Object" target="_blank">Object</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=xml" target="_blank">xml</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=标识符" target="_blank">标识符</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=并发" target="_blank">并发</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=channel" target="_blank">channel</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=对象" target="_blank">对象</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=事件" target="_blank">事件</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=dom" target="_blank">dom</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=windows" target="_blank">windows</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=数据库" target="_blank">数据库</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=apache" target="_blank">apache</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=http" target="_blank">http</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=linux" target="_blank">linux</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=自动化" target="_blank">自动化</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=cms" target="_blank">cms</a>								</div>
    							</div>
    						
    						<p class="statement">本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn</p>
    						<div class="lastanext flexRow">
    													<a class="lastart flexRow" href="/faq/1506510.html" title="XPath如何选择后代节点?"><span>上一篇:</span>XPath如何选择后代节点?</a>
    													<a class="nextart flexRow" href="/faq/1506715.html" title="XML与Excel如何转换?"><span>下一篇:</span>XML与Excel如何转换?</a>
    												</div>
    					</div>
    
    					<div class="artlef-down ">
    													<div class="authormore ">
    								<div class="rightdTitle flexRow">
    									<div class="title-left flexRow"> <b></b>
    										<p>作者最新文章</p>
    									</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1900866.html" title="抖音直播福袋怎么设置 抖音发福袋详细步骤"><b></b>
    												<p class="overflowclass">抖音直播福袋怎么设置 抖音发福袋详细步骤</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 14:07</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1900890.html" title="苹果M1芯片怎么装Win11 M1/M2 Mac通过虚拟机安装Win11 ARM版教程"><b></b>
    												<p class="overflowclass">苹果M1芯片怎么装Win11 M1/M2 Mac通过虚拟机安装Win11 ARM版教程</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 14:14</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1900958.html" title="ASP.NET Core中间件怎么编写 自定义Middleware管道方法"><b></b>
    												<p class="overflowclass">ASP.NET Core中间件怎么编写 自定义Middleware管道方法</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 14:33</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1900961.html" title="盐神居怎么更换小说封面 盐神居上传封面教程"><b></b>
    												<p class="overflowclass">盐神居怎么更换小说封面 盐神居上传封面教程</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 14:34</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1901052.html" title="C# Blazor 开发环境搭建指南"><b></b>
    												<p class="overflowclass">C# Blazor 开发环境搭建指南</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 15:00</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1901071.html" title="C#怎么使用AutoMapper C#对象属性映射配置方法"><b></b>
    												<p class="overflowclass">C#怎么使用AutoMapper C#对象属性映射配置方法</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 15:05</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1901124.html" title="Blazor 怎么安全地渲染 HTML 内容"><b></b>
    												<p class="overflowclass">Blazor 怎么安全地渲染 HTML 内容</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 15:21</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1901140.html" title="EMS国际快递单号查询 邮政国际包裹查询入口"><b></b>
    												<p class="overflowclass">EMS国际快递单号查询 邮政国际包裹查询入口</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 15:26</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1901156.html" title="Excel千分号怎么打 Excel输入千分比符号方法【技巧】"><b></b>
    												<p class="overflowclass">Excel千分号怎么打 Excel输入千分比符号方法【技巧】</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 15:28</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/1901181.html" title="MAUI Border控件怎么用 MAUI边框和圆角设置方法"><b></b>
    												<p class="overflowclass">MAUI Border控件怎么用 MAUI边框和圆角设置方法</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2025-12-27 15:37</p>
    											</div>
    										</div>
    								</div>
    															</div>
    						
    						<div class="moreAi ">
    							<div class="rightdTitle flexRow">
    								<div class="title-left flexRow"> <b></b>
    									<p>热门AI工具</p>
    								</div>
    								<a target="_blank" class="rititle-more flexRow" href="/ai" title="热门AI工具"><span>更多</span><b></b></a>
    							</div>
    
    							<div class="moreailist flexRow">
    																	<div class="aidcons flexRow  check ">
    										<a target="_blank" href="/ai/723" title="DeepSeek" class="aibtns flexRow">
    											<img src="https://img.php.cn/upload/ai_manual/000/000/000/175679963982777.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="DeepSeek" class="aibtnimg"
    												onerror="this.src='/static/lhimages/moren/morentu.png'">
    											<div class="aibtn-right flexColumn">
    												<p class="overflowclass abripone">DeepSeek</p>
    												<p class="overflowclass abriptwo">幻方量化公司旗下的开源大模型平台</p>
    																									<div class="aidconstab flexRow">
    																												<p href="/ai/tag/code/large-model" title="AI大模型" class="aidcontbp flexRow flexcenter">AI大模型</p>
    																													<p href="/ai/tag/code/open-plat" title="开放平台" class="aidcontbp flexRow flexcenter">开放平台</p>
    																											</div>
    																							</div>
    										</a>
    									</div>
    																	<div class="aidcons flexRow  check ">
    										<a target="_blank" href="/ai/726" title="豆包大模型" class="aibtns flexRow">
    											<img src="https://img.php.cn/upload/ai_manual/000/000/000/175680204067325.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="豆包大模型" class="aibtnimg"
    												onerror="this.src='/static/lhimages/moren/morentu.png'">
    											<div class="aibtn-right flexColumn">
    												<p class="overflowclass abripone">豆包大模型</p>
    												<p class="overflowclass abriptwo">字节跳动自主研发的一系列大型语言模型</p>
    																									<div class="aidconstab flexRow">
    																												<p href="/ai/tag/code/large-model" title="AI大模型" class="aidcontbp flexRow flexcenter">AI大模型</p>
    																											</div>
    																							</div>
    										</a>
    									</div>
    																	<div class="aidcons flexRow  check ">
    										<a target="_blank" href="/ai/725" title="通义千问" class="aibtns flexRow">
    											<img src="https://img.php.cn/upload/ai_manual/000/000/000/175679974228210.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="通义千问" class="aibtnimg"
    												onerror="this.src='/static/lhimages/moren/morentu.png'">
    											<div class="aibtn-right flexColumn">
    												<p class="overflowclass abripone">通义千问</p>
    												<p class="overflowclass abriptwo">阿里巴巴推出的全能AI助手</p>
    																									<div class="aidconstab flexRow">
    																												<p href="/ai/tag/code/large-model" title="AI大模型" class="aidcontbp flexRow flexcenter">AI大模型</p>
    																											</div>
    																							</div>
    										</a>
    									</div>
    																	<div class="aidcons flexRow  check ">
    										<a target="_blank" href="/ai/854" title="腾讯元宝" class="aibtns flexRow">
    											<img src="https://img.php.cn/upload/ai_manual/000/000/000/175679978251103.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="腾讯元宝" class="aibtnimg"
    												onerror="this.src='/static/lhimages/moren/morentu.png'">
    											<div class="aibtn-right flexColumn">
    												<p class="overflowclass abripone">腾讯元宝</p>
    												<p class="overflowclass abriptwo">腾讯混元平台推出的AI助手</p>
    																									<div class="aidconstab flexRow">
    																												<p href="/ai/tag/office/docs" title="文档处理" class="aidcontbp flexRow flexcenter">文档处理</p>
    																													<p href="/ai/tag/office/excel" title="Excel 表格" class="aidcontbp flexRow flexcenter">Excel 表格</p>
    																											</div>
    																							</div>
    										</a>
    									</div>
    																	<div class="aidcons flexRow  check ">
    										<a target="_blank" href="/ai/724" title="文心一言" class="aibtns flexRow">
    											<img src="https://img.php.cn/upload/ai_manual/000/000/000/175679974557049.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="文心一言" class="aibtnimg"
    												onerror="this.src='/static/lhimages/moren/morentu.png'">
    											<div class="aibtn-right flexColumn">
    												<p class="overflowclass abripone">文心一言</p>
    												<p class="overflowclass abriptwo">文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。</p>
    																									<div class="aidconstab flexRow">
    																												<p href="/ai/tag/code/large-model" title="AI大模型" class="aidcontbp flexRow flexcenter">AI大模型</p>
    																													<p href="/ai/tag/text/chinese-writing" title="中文写作" class="aidcontbp flexRow flexcenter">中文写作</p>
    																											</div>
    																							</div>
    										</a>
    									</div>
    																	<div class="aidcons flexRow  check ">
    										<a target="_blank" href="/ai/1507" title="讯飞写作" class="aibtns flexRow">
    											<img src="https://img.php.cn/upload/ai_manual/000/969/633/68b7a4153cd86671.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="讯飞写作" class="aibtnimg"
    												onerror="this.src='/static/lhimages/moren/morentu.png'">
    											<div class="aibtn-right flexColumn">
    												<p class="overflowclass abripone">讯飞写作</p>
    												<p class="overflowclass abriptwo">基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿</p>
    																									<div class="aidconstab flexRow">
    																												<p href="/ai/tag/text/chinese-writing" title="中文写作" class="aidcontbp flexRow flexcenter">中文写作</p>
    																													<p href="/ai/tag/text/write" title="写作工具" class="aidcontbp flexRow flexcenter">写作工具</p>
    																											</div>
    																							</div>
    										</a>
    									</div>
    																	<div class="aidcons flexRow  check ">
    										<a target="_blank" href="/ai/1115" title="即梦AI" class="aibtns flexRow">
    											<img src="https://img.php.cn/upload/ai_manual/001/246/273/68b6d8f7c530c315.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="即梦AI" class="aibtnimg"
    												onerror="this.src='/static/lhimages/moren/morentu.png'">
    											<div class="aibtn-right flexColumn">
    												<p class="overflowclass abripone">即梦AI</p>
    												<p class="overflowclass abriptwo">一站式AI创作平台,免费AI图片和视频生成。</p>
    																									<div class="aidconstab flexRow">
    																												<p href="/ai/tag/image/image-titching" title="图片拼接" class="aidcontbp flexRow flexcenter">图片拼接</p>
    																													<p href="/ai/tag/image/image-create" title="图画生成" class="aidcontbp flexRow flexcenter">图画生成</p>
    																											</div>
    																							</div>
    										</a>
    									</div>
    																	<div class="aidcons flexRow  check ">
    										<a target="_blank" href="/ai/808" title="ChatGPT" class="aibtns flexRow">
    											<img src="https://img.php.cn/upload/ai_manual/000/000/000/175679970194596.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="ChatGPT" class="aibtnimg"
    												onerror="this.src='/static/lhimages/moren/morentu.png'">
    											<div class="aibtn-right flexColumn">
    												<p class="overflowclass abripone">ChatGPT</p>
    												<p class="overflowclass abriptwo">最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。</p>
    																									<div class="aidconstab flexRow">
    																												<p href="/ai/tag/code/large-model" title="AI大模型" class="aidcontbp flexRow flexcenter">AI大模型</p>
    																													<p href="/ai/tag/text/chinese-writing" title="中文写作" class="aidcontbp flexRow flexcenter">中文写作</p>
    																											</div>
    																							</div>
    										</a>
    									</div>
    																	<div class="aidcons flexRow  check ">
    										<a target="_blank" href="/ai/821" title="智谱清言 - 免费全能的AI助手" class="aibtns flexRow">
    											<img src="https://img.php.cn/upload/ai_manual/000/000/000/175679976181507.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="智谱清言 - 免费全能的AI助手" class="aibtnimg"
    												onerror="this.src='/static/lhimages/moren/morentu.png'">
    											<div class="aibtn-right flexColumn">
    												<p class="overflowclass abripone">智谱清言 - 免费全能的AI助手</p>
    												<p class="overflowclass abriptwo">智谱清言 - 免费全能的AI助手</p>
    																									<div class="aidconstab flexRow">
    																												<p href="/ai/tag/code/large-model" title="AI大模型" class="aidcontbp flexRow flexcenter">AI大模型</p>
    																													<p href="/ai/tag/office/pdf" title="PDF 文档" class="aidcontbp flexRow flexcenter">PDF 文档</p>
    																											</div>
    																							</div>
    										</a>
    									</div>
    															</div>
    
    
    
    
    						</div>
    
    					</div>
    
    
    				</div>
    
    
    			</div>
    			<div class="conRight artdtilRight ">
    				<div class="artrig-adv ">
                        <script type="text/javascript" src="https://teacher.php.cn/php/MDM3MTk1MGYxYjI5ODJmNTE0ZWVkZTA3NmJhYzhmMjI6Og=="></script>
                    </div>
    				<div class="hotzt artdtzt">
    					<div class="rightdTitle flexRow">
    						<div class="title-left flexRow"> <b></b>
    							<p>相关专题</p>
    						</div>
    						<a target="_blank" class="rititle-more flexRow" href="/faq/zt" title="相关专题"><span>更多</span><b></b></a>
    					</div>
    					<div class="hotztuls flexColumn">
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/sphzmdynx" class="aClass flexRow hotzta" title="视频后缀名都有哪些"><img
    										src="https://img.php.cn/upload/subject/202310/31/2023103110184985620.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="视频后缀名都有哪些" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/sphzmdynx" class="aClass flexRow hotztra overflowclass" title="视频后缀名都有哪些">视频后缀名都有哪些</a>
    									<p class="aClass flexRow hotztrp overflowclass">视频后缀名都有avi、mpg、mpeg、rm、rmvb、flv、wmv、mov、mkv、ASF、M1V、M2V、MPE、QT、VOB、RA、RMJ、RMS、RAM、等等。更多关于视频后缀名的相关知识,详情请看本专题下面的文章,php中文网欢迎大家前来学习。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">3329</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.10.31</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/cqttxkf" class="aClass flexRow hotzta" title="C++ Qt图形开发"><img
    										src="https://img.php.cn/upload/subject/202508/15/2025081509460457401.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="C++ Qt图形开发" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/cqttxkf" class="aClass flexRow hotztra overflowclass" title="C++ Qt图形开发">C++ Qt图形开发</a>
    									<p class="aClass flexRow hotztrp overflowclass">本专题专注于 C++ Qt框架在图形界面开发中的应用,系统讲解窗口设计、信号与槽机制、界面布局、事件处理、数据库连接与跨平台打包等核心技能,通过多个桌面应用项目实战,帮助学员快速掌握 Qt 框架并独立完成跨平台GUI软件的开发。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">67</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2025.08.15</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/ctxjmkfjc" class="aClass flexRow hotzta" title="C++ 图形界面开发基础(Qt方向)"><img
    										src="https://img.php.cn/upload/subject/202512/05/2025120517534236014.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="C++ 图形界面开发基础(Qt方向)" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/ctxjmkfjc" class="aClass flexRow hotztra overflowclass" title="C++ 图形界面开发基础(Qt方向)">C++ 图形界面开发基础(Qt方向)</a>
    									<p class="aClass flexRow hotztrp overflowclass">本专题系统讲解 使用 C++ 与 Qt 进行图形界面(GUI)开发的核心技能,内容涵盖 Qt 项目结构、窗口组件、信号与槽机制、事件处理、布局管理、资源管理,以及跨平台编译与打包流程。通过多个小型桌面应用实战案例,帮助学习者掌握从界面设计到功能实现的完整 GUI 开发能力。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">40</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2025.12.05</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/nginx" class="aClass flexRow hotzta" title="nginx 重启"><img
    										src="https://img.php.cn/upload/subject/202307/27/2023072717525616523.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="nginx 重启" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/nginx" class="aClass flexRow hotztra overflowclass" title="nginx 重启">nginx 重启</a>
    									<p class="aClass flexRow hotztrp overflowclass">nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">227</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.07.27</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/nginxpzxj" class="aClass flexRow hotzta" title="nginx 配置详解"><img
    										src="https://img.php.cn/upload/subject/202308/04/2023080411205829485.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="nginx 配置详解" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/nginxpzxj" class="aClass flexRow hotztra overflowclass" title="nginx 配置详解">nginx 配置详解</a>
    									<p class="aClass flexRow hotztrp overflowclass">Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">490</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.08.04</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/nginxpeiz" class="aClass flexRow hotzta" title="nginx配置详解"><img
    										src="https://img.php.cn/upload/subject/202308/04/2023080415334134570.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="nginx配置详解" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/nginxpeiz" class="aClass flexRow hotztra overflowclass" title="nginx配置详解">nginx配置详解</a>
    									<p class="aClass flexRow hotztrp overflowclass">NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">496</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.08.04</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/tomcatnginxyn" class="aClass flexRow hotzta" title="tomcat和nginx有哪些区别"><img
    										src="https://img.php.cn/upload/subject/202401/31/2024013117033567045.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="tomcat和nginx有哪些区别" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/tomcatnginxyn" class="aClass flexRow hotztra overflowclass" title="tomcat和nginx有哪些区别">tomcat和nginx有哪些区别</a>
    									<p class="aClass flexRow hotztrp overflowclass">tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">220</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2024.02.23</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/nginxbzmjj" class="aClass flexRow hotzta" title="nginx报404怎么解决"><img
    										src="https://img.php.cn/upload/subject/202407/09/2024070913081616019.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="nginx报404怎么解决" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/nginxbzmjj" class="aClass flexRow hotztra overflowclass" title="nginx报404怎么解决">nginx报404怎么解决</a>
    									<p class="aClass flexRow hotztrp overflowclass">当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">329</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2024.07.09</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/elsssyqyandrk" class="aClass flexRow hotzta" title="俄罗斯搜索引擎Yandex最新官方入口网址"><img
    										src="https://img.php.cn/upload/subject/202512/29/2025122916444163528.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="俄罗斯搜索引擎Yandex最新官方入口网址" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/elsssyqyandrk" class="aClass flexRow hotztra overflowclass" title="俄罗斯搜索引擎Yandex最新官方入口网址">俄罗斯搜索引擎Yandex最新官方入口网址</a>
    									<p class="aClass flexRow hotztrp overflowclass">Yandex官方入口网址是https://yandex.com;用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">1</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2025.12.29</p>
    										</div>
    									</div>
    								</div>
    							</div>
    											</div>
    				</div>
    
    				<div class="hotdownload ">
    					<div class="rightdTitle flexRow">
    						<div class="title-left flexRow"> <b></b>
    							<p>热门下载</p>
    						</div>
    						<a target="_blank" class="rititle-more flexRow" href="/xiazai" title="热门下载"><span>更多</span><b></b></a>
    					</div>
    					<div class="hotdownTab">
    						<div class="hdTabs flexRow">
    							<div class="check" data-id="onef">网站特效 <b></b> </div> /
    							<div class="" data-id="twof">网站源码 <b></b></div> /
    							<div class="" data-id="threef">网站素材 <b></b></div> /
    							<div class="" data-id="fourf">前端模板 <b></b></div>
    						</div>
    						<ul class="onef">
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="css3伸缩条形图" href="/xiazai/js/8166"><span>[图片特效]</span><span>css3伸缩条形图</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="响应式网站导航栏ui布局代码" href="/xiazai/js/8165"><span>[菜单导航]</span><span>响应式网站导航栏ui布局代码</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="创意的图标键盘ui布局" href="/xiazai/js/8164"><span>[窗口特效]</span><span>创意的图标键盘ui布局</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="Css文字渐变动画特效代码" href="/xiazai/js/8163"><span>[文字特效]</span><span>Css文字渐变动画特效代码</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="带数字的图文tab切换代码" href="/xiazai/js/8162"><span>[选项卡TAB]</span><span>带数字的图文tab切换代码</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jquery带定位按钮幻灯片" href="/xiazai/js/8161"><span>[图片特效]</span><span>jquery带定位按钮幻灯片</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="实用的侧边下拉收缩菜单ui特效" href="/xiazai/js/8160"><span>[菜单导航]</span><span>实用的侧边下拉收缩菜单ui特效</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="三款jQuery表单验证申请代码" href="/xiazai/js/8159"><span>[表单按钮]</span><span>三款jQuery表单验证申请代码</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jQuery右侧悬浮固定qq在线客服特效代码下载" href="/xiazai/js/8158"><span>[窗口特效]</span><span>jQuery右侧悬浮固定qq在线客服特效代码下载</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="CSS3实现3D折叠字体效果代码" href="/xiazai/js/8157"><span>[文字特效]</span><span>CSS3实现3D折叠字体效果代码</span></a>
    									</div>
    								</li>
    													</ul>
    						<ul class="twof" style="display:none;">
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11353" title="雅龙智能装备工业设备类WordPress主题1.0"><span>[企业站源码]</span><span>雅龙智能装备工业设备类WordPress主题1.0</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11352" title="威发卡自动发卡系统"><span>[电商源码]</span><span>威发卡自动发卡系统</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11351" title="卡密分发系统"><span>[电商源码]</span><span>卡密分发系统</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11350" title="中华陶瓷网"><span>[电商源码]</span><span>中华陶瓷网</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11349" title="简洁粉色食品公司网站"><span>[电商源码]</span><span>简洁粉色食品公司网站</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11348" title="极速网店系统"><span>[电商源码]</span><span>极速网店系统</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11347" title="淘宝妈妈_淘客推广系统"><span>[电商源码]</span><span>淘宝妈妈_淘客推广系统</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11346" title="积客B2SCMS商城系统"><span>[电商源码]</span><span>积客B2SCMS商城系统</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11345" title="CODEC2I 众筹系统"><span>[电商源码]</span><span>CODEC2I 众筹系统</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/11344" title="ieshop超级网店系统"><span>[电商源码]</span><span>ieshop超级网店系统</span> </a>
    									</div>
    								</li>
    													</ul>
    						<ul class="threef" style="display:none;">
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4140" title="复古红色咖啡促销海报矢量模板"><span>[网站素材]</span><span>复古红色咖啡促销海报矢量模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4139" title="2026新年快乐竖版海报PSD模板设计下载"><span>[网站素材]</span><span>2026新年快乐竖版海报PSD模板设计下载</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4138" title="孟菲斯几何2026新年贺卡矢量"><span>[网站素材]</span><span>孟菲斯几何2026新年贺卡矢量</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4137" title="珠宝饰品折扣感谢卡ps素材下载"><span>[网站素材]</span><span>珠宝饰品折扣感谢卡ps素材下载</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4136" title="2026新年创意剪影海报矢量素材"><span>[网站素材]</span><span>2026新年创意剪影海报矢量素材</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4135" title="极简线条女子美容护肤矢量素材"><span>[网站素材]</span><span>极简线条女子美容护肤矢量素材</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4134" title="2026年日历表设计源文件下载"><span>[网站素材]</span><span>2026年日历表设计源文件下载</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4133" title="欧式复古西餐厅菜单设计矢量"><span>[网站素材]</span><span>欧式复古西餐厅菜单设计矢量</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4132" title="绘画艺术活动折扣票券设计下载"><span>[网站素材]</span><span>绘画艺术活动折扣票券设计下载</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4131" title="国潮复古肌理灯笼矢量素材"><span>[网站素材]</span><span>国潮复古肌理灯笼矢量素材</span> </a>
    									</div>
    								</li>
    													</ul>
    						<ul class="fourf" style="display:none;">
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8590"  title="驾照考试驾校HTML5网站模板"><span>[前端模板]</span><span>驾照考试驾校HTML5网站模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8589"  title="驾照培训服务机构宣传网站模板"><span>[前端模板]</span><span>驾照培训服务机构宣传网站模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8588"  title="HTML5房地产公司宣传网站模板"><span>[前端模板]</span><span>HTML5房地产公司宣传网站模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8587"  title="新鲜有机肉类宣传网站模板"><span>[前端模板]</span><span>新鲜有机肉类宣传网站模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8586"  title="响应式天气预报宣传网站模板"><span>[前端模板]</span><span>响应式天气预报宣传网站模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8585"  title="房屋建筑维修公司网站CSS模板"><span>[前端模板]</span><span>房屋建筑维修公司网站CSS模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8584"  title="响应式志愿者服务网站模板"><span>[前端模板]</span><span>响应式志愿者服务网站模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8583"  title="创意T恤打印店网站HTML5模板"><span>[前端模板]</span><span>创意T恤打印店网站HTML5模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8582"  title="网页开发岗位简历作品展示网页模板"><span>[前端模板]</span><span>网页开发岗位简历作品展示网页模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/code/8581"  title="响应式人力资源机构宣传网站模板"><span>[前端模板]</span><span>响应式人力资源机构宣传网站模板</span> </a>
    									</div>
    								</li>
    													</ul>
    					</div>
    					<script>
    						$('.hdTabs>div').click(function (e) {
    							$('.hdTabs>div').removeClass('check')
    							$(this).addClass('check')
    							$('.hotdownTab>ul').css('display', 'none')
    							$('.' + e.currentTarget.dataset.id).show()
    						})
    					</script>
    
    				</div>
    
    				<div class="artrig-adv ">
    					<script type="text/javascript" src="https://teacher.php.cn/php/MDM3MTk1MGYxYjI5ODJmNTE0ZWVkZTA3NmJhYzhmMjI6Og=="></script>
                    </div>
    
    
    
    				<div class="xgarts ">
    					<div class="rightdTitle flexRow">
    						<div class="title-left flexRow"> <b></b>
    							<p>相关下载</p>
    						</div>
    						<a target="_blank" class="rititle-more flexRow" href="/xiazai" title="相关下载"><span>更多</span><b></b></a>
    					</div>
    					<div class="xgwzlist ">
    											<div class="xgwzlid flexRow"><b></b><a target="_blank" title="情感家园企业站5.0 多语言多风格版" href="/xiazai/code/9331">情感家园企业站5.0 多语言多风格版</a></div>
    										</div>
    
    				</div>
    
    				<div class="jpkc">
    					<div class="rightdTitle flexRow">
    						<div class="title-left flexRow"> <b></b>
    							<p>精品课程</p>
    						</div>
    						<a class="rititle-more flexRow" target="_blank" href="/course/sort_new.html" title="精品课程"><span>更多</span><b></b></a>
    					</div>
    					<div class=" jpkcTab">
    						<div class=" jpkcTabs flexRow">
    							<div class="check" data-id="onefd">相关推荐 <b></b> </div> /
    							<div class="" data-id="twofd">热门推荐 <b></b></div> /
    							<div class="" data-id="threefd">最新课程 <b></b></div>
    						</div>
    						<div class="onefd jpktabd">
    													<div  class="ristyA flexRow " >
    								<a target="_blank" href="/course/1691.html" title="PostgreSQL 教程">
    									<img src="https://img.php.cn/upload/course/000/000/090/68a707263dce2298.jpeg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="PostgreSQL 教程" class="ristyAimg"
    										onerror="this.src='/static/mobimages/moren/morentu.png'">
    								</a>
    								<div class="ristyaRight flexColumn">
    									<a target="_blank" href="/course/1691.html" title="PostgreSQL 教程"
    										class="rirightp overflowclass">PostgreSQL 教程</a>
    
    									<div class="risrdown flexRow">
    										<p>共48课时 | 6.2万人学习</p>
    									</div>
    								</div>
    							</div>
    													<div  class="ristyA flexRow " >
    								<a target="_blank" href="/course/1689.html" title="Git 教程">
    									<img src="https://img.php.cn/upload/course/000/000/090/68a702c53c8ed154.jpeg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="Git 教程" class="ristyAimg"
    										onerror="this.src='/static/mobimages/moren/morentu.png'">
    								</a>
    								<div class="ristyaRight flexColumn">
    									<a target="_blank" href="/course/1689.html" title="Git 教程"
    										class="rirightp overflowclass">Git 教程</a>
    
    									<div class="risrdown flexRow">
    										<p>共21课时 | 2.3万人学习</p>
    									</div>
    								</div>
    							</div>
    													<div  class="ristyA flexRow " >
    								<a target="_blank" href="/course/1577.html" title="Linux运维网站架构,知识点全面总结">
    									<img src="https://img.php.cn/upload/course/000/000/067/64ab970dc6e8e558.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="Linux运维网站架构,知识点全面总结" class="ristyAimg"
    										onerror="this.src='/static/mobimages/moren/morentu.png'">
    								</a>
    								<div class="ristyaRight flexColumn">
    									<a target="_blank" href="/course/1577.html" title="Linux运维网站架构,知识点全面总结"
    										class="rirightp overflowclass">Linux运维网站架构,知识点全面总结</a>
    
    									<div class="risrdown flexRow">
    										<p>共16课时 | 0.9万人学习</p>
    									</div>
    								</div>
    							</div>
    												</div>
    
    						<div class="twofd jpktabd" style="display:none;">
    															<div  class="ristyA flexRow " >
    									<a target="_blank" href="/course/639.html" title="phpStudy极速入门视频教程">
    										<img src="https://img.php.cn/upload/course/000/000/068/62611ef88fcec821.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="phpStudy极速入门视频教程" class="ristyAimg"
    											onerror="this.src='/static/mobimages/moren/morentu.png'">
    									</a>
    									<div class="ristyaRight flexColumn">
    										<a target="_blank" href="/course/639.html" title="phpStudy极速入门视频教程"
    											class="rirightp overflowclass">phpStudy极速入门视频教程</a>
    
    										<div class="risrdown flexRow">
    											<p>共6课时 | 53.3万人学习</p>
    										</div>
    									</div>
    								</div>
    															<div  class="ristyA flexRow " >
    									<a target="_blank" href="/course/379.html" title="独孤九贱(4)_PHP视频教程">
    										<img src="https://img.php.cn/upload/course/000/000/001/5d1c6dfc9eb09885.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="独孤九贱(4)_PHP视频教程" class="ristyAimg"
    											onerror="this.src='/static/mobimages/moren/morentu.png'">
    									</a>
    									<div class="ristyaRight flexColumn">
    										<a target="_blank" href="/course/379.html" title="独孤九贱(4)_PHP视频教程"
    											class="rirightp overflowclass">独孤九贱(4)_PHP视频教程</a>
    
    										<div class="risrdown flexRow">
    											<p>共89课时 | 125.9万人学习</p>
    										</div>
    									</div>
    								</div>
    															<div  class="ristyA flexRow " >
    									<a target="_blank" href="/course/801.html" title="PHP实战天龙八部之仿爱奇艺电影网站">
    										<img src="https://img.php.cn/upload/course/000/000/001/5d2426f409839992.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="PHP实战天龙八部之仿爱奇艺电影网站" class="ristyAimg"
    											onerror="this.src='/static/mobimages/moren/morentu.png'">
    									</a>
    									<div class="ristyaRight flexColumn">
    										<a target="_blank" href="/course/801.html" title="PHP实战天龙八部之仿爱奇艺电影网站"
    											class="rirightp overflowclass">PHP实战天龙八部之仿爱奇艺电影网站</a>
    
    										<div class="risrdown flexRow">
    											<p>共49课时 | 77.5万人学习</p>
    										</div>
    									</div>
    								</div>
    													</div>
    
    						<div class="threefd jpktabd" style="display:none;">
    															<div  class="ristyA flexRow " >
    										<a target="_blank" href="/course/1558.html" title="RunnerGo从入门到精通">
    											<img src="https://img.php.cn/upload/course/000/000/067/6461bf1a464c1119.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="RunnerGo从入门到精通" class="ristyAimg"
    												onerror="this.src='/static/mobimages/moren/morentu.png'">
    										</a>
    										<div class="ristyaRight flexColumn">
    											<a target="_blank" href="/course/1558.html" title="RunnerGo从入门到精通"
    												class="rirightp overflowclass">RunnerGo从入门到精通</a>
    
    											<div class="risrdown flexRow">
    												<p>共22课时 | 1.7万人学习</p>
    											</div>
    										</div>
    									</div>
    																<div  class="ristyA flexRow " >
    										<a target="_blank" href="/course/1514.html" title="Apipost从入门到精通">
    											<img src="https://img.php.cn/upload/course/000/000/068/63db62f3d0b65880.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="Apipost从入门到精通" class="ristyAimg"
    												onerror="this.src='/static/mobimages/moren/morentu.png'">
    										</a>
    										<div class="ristyaRight flexColumn">
    											<a target="_blank" href="/course/1514.html" title="Apipost从入门到精通"
    												class="rirightp overflowclass">Apipost从入门到精通</a>
    
    											<div class="risrdown flexRow">
    												<p>共31课时 | 2.3万人学习</p>
    											</div>
    										</div>
    									</div>
    																<div  class="ristyA flexRow " >
    										<a target="_blank" href="/course/1511.html" title="WordPress零基础新手搭建个人博客及企业网站">
    											<img src="https://img.php.cn/upload/course/000/000/068/63c4f5a167a4b379.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="WordPress零基础新手搭建个人博客及企业网站" class="ristyAimg"
    												onerror="this.src='/static/mobimages/moren/morentu.png'">
    										</a>
    										<div class="ristyaRight flexColumn">
    											<a target="_blank" href="/course/1511.html" title="WordPress零基础新手搭建个人博客及企业网站"
    												class="rirightp overflowclass">WordPress零基础新手搭建个人博客及企业网站</a>
    
    											<div class="risrdown flexRow">
    												<p>共28课时 | 3万人学习</p>
    											</div>
    										</div>
    									</div>
    														</div>
    						<script>
    							$('.jpkcTabs>div').click(function (e) {
    								$('.jpkcTabs>div').removeClass('check')
    								$(this).addClass('check')
    								$('.jpkcTab .jpktabd').css('display', 'none')
    								$('.' + e.currentTarget.dataset.id).show()
    							})
    						</script>
    
    					</div>
    				</div>
    
    				<div class="zxarts ">
    					<div class="rightdTitle flexRow">
    						<div class="title-left flexRow"> <b></b>
    							<p>最新文章</p>
    						</div>
    						<a class="rititle-more flexRow" href="" title="最新文章" target="_blank"><span>更多</span><b></b></a>
    					</div>
    					<div class="xgwzlist ">
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="PowerShell怎么创建XML对象和文件" href="/faq/1908893.html">PowerShell怎么创建XML对象和文件</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="FIX协议(金融信息交换协议)与XML的关系" href="/faq/1908879.html">FIX协议(金融信息交换协议)与XML的关系</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Ant Build.xml文件怎么写 Ant构建脚本入门教程" href="/faq/1908773.html">Ant Build.xml文件怎么写 Ant构建脚本入门教程</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Dart/Flutter怎么解析XML xml package用法" href="/faq/1908746.html">Dart/Flutter怎么解析XML xml package用法</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="XQuery和SQL有什么相似和不同之处" href="/faq/1908704.html">XQuery和SQL有什么相似和不同之处</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="XML签名(XML Signature)是什么 数字签名实现方法" href="/faq/1908544.html">XML签名(XML Signature)是什么 数字签名实现方法</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何将XML数据导入PostgreSQL数据库" href="/faq/1908456.html">如何将XML数据导入PostgreSQL数据库</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Java XSLT转换时如何传递参数 Transformer.setParameter" href="/faq/1908446.html">Java XSLT转换时如何传递参数 Transformer.setParameter</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="PMD规则集ruleset.xml怎么定义 自定义PMD规则" href="/faq/1908413.html">PMD规则集ruleset.xml怎么定义 自定义PMD规则</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Android Manifest.xml文件详解 各项权限配置" href="/faq/1908142.html">Android Manifest.xml文件详解 各项权限配置</a></div>
    											</div>
    
    				</div>
    
    
    
    
    
    
    			</div>
    
    
    
    		</div>
    
    	</div>
    	<!--底部-->
    	<div class="phpFoot">
        <div class="phpFootIn">
            <div class="phpFootCont">
                <div class="phpFootLeft">
                    <dl>
                        <dt>
                            <a target="_blank"  href="/about/us.html" rel="nofollow"  title="关于我们" class="cBlack">关于我们</a>
                            <a target="_blank"  href="/about/disclaimer.html" rel="nofollow"  title="免责申明" class="cBlack">免责申明</a>
                            <a target="_blank"  href="/about/jbzx.html" rel="nofollow"  title="举报中心" class="cBlack">举报中心</a>
                            <a   href="javascript:;" rel="nofollow" onclick="advice_data(99999999,'意见反馈')"   title="意见反馈" class="cBlack">意见反馈</a>
                            <a target="_blank"  href="https://www.php.cn/teacher.html" rel="nofollow"   title="讲师合作" class="cBlack">讲师合作</a>
                            <a  target="_blank" href="https://www.php.cn/blog/detail/20304.html" rel="nofollow"  title="广告合作" class="cBlack">广告合作</a>
                            <a  target="_blank" href="/new/"    title="最新文章列表" class="cBlack">最新更新</a>
                                                    <div class="clear"></div>
                        </dt>
                        <dd class="cont1">php中文网:公益在线php培训,帮助PHP学习者快速成长!</dd>
                        <dd class="cont2">
                          <span class="ylwTopBox">
                            <a   href="javascript:;"  class="cBlack"><b class="icon1"></b>关注服务号</a>
                            <em style="display:none;" class="ylwTopSub">
                              <p>微信扫码<br/>关注PHP中文网服务号</p>
                              <img src="/static/images/examples/text16.png"/>
                            </em>
                          </span>
                            <span class="ylwTopBox">
                            <a   href="tencent://message/?uin=27220243&Site=www.php.cn&Menu=yes"  class="cBlack"><b class="icon2"></b>技术交流群</a>
                            <em style="display:none;" class="ylwTopSub">
                              <p>QQ扫码<br/>加入技术交流群</p>
                              <img src="/static/images/examples/text18.png"/>
                            </em>
                          </span>
                            <div class="clear"></div>
                        </dd>
                    </dl>
                    
                </div>
                <div class="phpFootRight">
                    <div class="phpFootMsg">
                        <span><img src="/static/images/examples/text17.png"/></span>
                        <dl>
                            <dt>PHP中文网订阅号</dt>
                            <dd>每天精选资源文章推送</dd>
                        </dl>
                    </div>
                </div>
            </div>
        </div>
        <div class="phpFootCode">
            <div class="phpFootCodeIn"><p>Copyright 2014-2025 <a   href="https://www.php.cn/" >https://www.php.cn/</a> All Rights Reserved | php.cn | <a   href="https://beian.miit.gov.cn/" rel="nofollow" >湘ICP备2023035733号</a></p><a   href="http://www.beian.gov.cn/portal/index.do" rel="nofollow" ><b></b></a></div>
        </div>
    </div>
    <input type="hidden" id="verifycode" value="/captcha.html">
    <script>
        var _hmt = _hmt || [];
        (function() {
            var hm = document.createElement("script");
            hm.src = "https://hm.baidu.com/hm.js?c0e685c8743351838d2a7db1c49abd56";
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(hm, s);
        })();
    </script>
    <script>layui.use(['element', 'carousel'], function () {var element = layui.element;$ = layui.jquery;var carousel = layui.carousel;carousel.render({elem: '#test1', width: '100%', height: '330px', arrow: 'always'});$.getScript('/static/js/jquery.lazyload.min.js', function () {$("img").lazyload({placeholder: "/static/images/load.jpg", effect: "fadeIn", threshold: 200, skip_invisible: false});});});</script>
    
    <span class="layui-hide"><script type="text/javascript" src="https://s4.cnzz.com/z_stat.php?id=1280886301&web_id=1280886301"></script></span>
    
    <script src="/static/js/cdn.js?v=1.0.1"></script>
    
    
    
    	<!--底部 end-->
    	<!-- content -->
    	<!--
        <div class="phpFudong">
            <div class="phpFudongIn">
                <div class="phpFudongImg"></div>
                <div class="phpFudongXue">登录PHP中文网,和优秀的人一起学习!</div>
                <div class="phpFudongQuan">全站<span>2000+</span>教程免费学</div>
                <div class="phpFudongCode"><a   href="javascript:;" id="login" title="微信扫码登录">微信扫码登录</a></div>
                <div class="phpGuanbi" onclick="$('.phpFudong').hide();"></div>
                <div class="clear"></div>
            </div>
        </div>
    -->	<!--底部浮动层 end-->
    	<!--侧导航-->
    	<style>
        .layui-fixbar{display: none;}
    </style>
    <div class="phpSdhBox" style="height:240px !important;">
        <li>
            <div class="phpSdhIn">
                <div class="phpSdhTitle">
                    <a   href="/k24.html"  class="hover" title="PHP学习">
                        <b class="icon1"></b>
                        <p>PHP学习</p>
                    </a>
                </div>
            </div>
        </li>
        <li>
            <div class="phpSdhIn">
                <div class="phpSdhTitle">
                    <a   href="https://www.php.cn/blog/detail/1047189.html" >
                        <b class="icon2"></b>
                        <p>技术支持</p>
                    </a>
                </div>
            </div>
        </li>
        <li>
            <div class="phpSdhIn">
                <div class="phpSdhTitle">
                    <a   href="#">
                        <b class="icon6"></b>
                        <p>返回顶部</p>
                    </a>
                </div>
            </div>
        </li>
    </div>
    	</body>
    
    </html>
    
    <script type="text/javascript" src="/hitsUp?type=article&id=1506639&time=1767066560">
    </script>
    <script src="/static/ueditor/third-party/SyntaxHighlighter/shCore.js?1767066560"></script>
    <script>
    	article_status = "1522179";
    </script>
    <input type="hidden" id="verifycode" value="/captcha.html">
    <script type="text/javascript" src="/static/js/global.min.js?5.5.33"></script>
    <link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css?2' type='text/css' media='all' />
    <script type='text/javascript' src='/static/js/viewer.min.js?1'></script>
    <script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script>
    <script type="text/javascript" src="/static/js/jquery.cookie.js"></script>
    <script>var _hmt = _hmt || [];(function(){var hm = document.createElement("script");hm.src="//hm.baidu.com/hm.js?c0e685c8743351838d2a7db1c49abd56";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm, s);})();(function(){var bp = document.createElement('script');var curProtocol = window.location.protocol.split(':')[0];if(curProtocol === 'https'){bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';}else{bp.src = 'http://push.zhanzhang.baidu.com/push.js';};var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(bp, s);})();</script>
    	
    
    <script>
    	function setCookie(name, value, iDay) { //name相当于键,value相当于值,iDay为要设置的过期时间(天)
    		var oDate = new Date();
    		oDate.setDate(oDate.getDate() + iDay);
    		document.cookie = name + '=' + value + ';path=/;domain=.php.cn;expires=' + oDate;
    	}
    
    	function getCookie(name) {
    		var cookieArr = document.cookie.split(";");
    		for (var i = 0; i < cookieArr.length; i++) {
    			var cookiePair = cookieArr[i].split("=");
    			if (name == cookiePair[0].trim()) {
    				return decodeURIComponent(cookiePair[1]);
    			}
    		}
    		return null;
    	}
    </script>
    
    
    <!-- Matomo -->
    <script>
    	var _paq = window._paq = window._paq || [];
    	/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
    	_paq.push(['trackPageView']);
    	_paq.push(['enableLinkTracking']);
    	(function () {
    		var u = "https://tongji.php.cn/";
    		_paq.push(['setTrackerUrl', u + 'matomo.php']);
    		_paq.push(['setSiteId', '7']);
    		var d = document,
    			g = d.createElement('script'),
    			s = d.getElementsByTagName('script')[0];
    		g.async = true;
    		g.src = u + 'matomo.js';
    		s.parentNode.insertBefore(g, s);
    	})();
    </script>
    <!-- End Matomo Code -->
    
    <script>
    	setCookie('is_article', 1, 1);
    </script>
    
    <script>
    	var is_login = "0";
            var show = 0;
            var ceng = getCookie('ceng');
            //未登录复制显示登录按钮
            if(is_login == 0 && false){
                $(".code").hover(function(){
                    $(this).find('.contentsignin').show();
                },function(){
                    $(this).find('.contentsignin').hide();
                });
                //不给复制
                $('.code').bind("cut copy paste",function(e) {
                    e.preventDefault();
                });
                $('.code .contentsignin').click(function(){
                    $(document).trigger("api.loginpopbox");
                })
            }else{
                // 获取所有的 <pre> 元素
                var preElements = document.querySelectorAll('pre');
                preElements.forEach(function(preElement) {
                    // 创建复制按钮
                    var copyButton = document.createElement('button');
                    copyButton.className = 'copy-button';
                    copyButton.textContent = '复制';
                    // 添加点击事件处理程序
                    copyButton.addEventListener('click', function() {
                        // 获取当前按钮所属的 <pre> 元素中的文本内容
                        var textContent = preElement.textContent.trim();
                        // 创建一个临时 textarea 元素并设置其值为 <pre> 中的文本内容
                        var tempTextarea = document.createElement('textarea');
                        tempTextarea.value = textContent;
                        // 将临时 textarea 添加到文档中
                        document.body.appendChild(tempTextarea);
                        // 选中临时 textarea 中的文本内容并执行复制操作
                        tempTextarea.select();
                        document.execCommand('copy');
                        // 移除临时 textarea 元素
                        document.body.removeChild(tempTextarea);
                        // 更新按钮文本为 "已复制"
                        this.textContent = '已复制';
                    });
    
                    // 创建AI写代码按钮
                    var aiButton = document.createElement('button');
                    aiButton.className = 'copy-button';
                    aiButton.textContent = 'AI写代码';
                    aiButton.style.marginLeft = '5px';
                    aiButton.style.marginRight = '5px';
                    // 添加点击事件处理程序
                    aiButton.addEventListener('click', function() {
                    // Generate a random number between 0 and 1
                            var randomChance = Math.random();
    
                        // If the random number is less than 0.5, open the first URL, else open the second
                        if (randomChance < 0.5) {
                            window.open('https://www.doubao.com/chat/coding?channel=php&source=hw_db_php', '_blank');
                        } else {
                            window.open('https://click.aliyun.com/m/1000402709/', '_blank');
                        }
                    });
    
                    // 将按钮添加到 <pre> 元素前面
                    preElement.parentNode.insertBefore(copyButton, preElement);
                    preElement.parentNode.insertBefore(aiButton, preElement);
            });
            }
    </script>