0

0

具体介绍历数Firefox2.0对XML处理的改进的代码实例(图)

黄舟

黄舟

发布时间:2017-03-15 17:04:26

|

1852人浏览过

|

来源于php中文网

原创

Firefox 2.0 在对 XML 的支持方面有几个重要的改进。目前它的用户部署如日中天。了解 Firefox 2.0 XML 特性的改进,包括在 RSS Web 提要处理方面有争议的变化。 被赋予新应用程序平台的角色后,现在 Web 浏览器可能是最热门的软件。对于软件开发人员来说这是令人激动的时
Firefox 2.0 在对 XML 的支持方面有几个重要的改进。目前它的用户部署如日中天。了解 Firefox 2.0 XML 特性的改进,包括在 RSS Web 提要处理方面有争议的变化。
被赋予新应用程序平台的角色后,现在 Web 浏览器可能是最热门的软件。对于软件开发人员来说这是令人激动的时刻,动态 HTML 技术以 Asynchronous JavaScript   XML (Ajax) 获得重生,Microsoft® Internet Explorer® 的开发得以恢复等等。过去两年中,关于 XML 和 Firefox 的 developerWorks 系列文章(请参阅 参考资料)介绍了以 1.8 版本的核心 Mozilla 浏览器引擎为基础的 Firefox 1.5 版。此后,Mozilla 项目永不停歇的开发步伐又催生了 Firefox 2.0,它以 Gecko 1.8.1 Web 呈现引擎为基础。Firefox 2.0 的一些改进涉及到 XML 处理。本文介绍了最新的 Firefox XML 处理功能,包括开发人员应该记住的可能遇到的主要障碍。
减少了对 Web 提要的控制
Firefox 2.0 一个变化引起了用户社区的极大惊慌。如果提供 RSS 或 Atom 这类 Web 提要,可能需要包括 XSLT 样式表为用户转换成其他表示形式。清单 1 中的 Atom 提要引用了这样的转换。
清单 1. 包含样式表引用的 Atom 提要




http://www.php.cn/;/id>
My Simple Feed
2005-07-15T12:00:00Z


Uche Ogbuji

http://www.php.cn/;/id>
A simple blog entry

2005-07-14T12:00:00Z
This is a simple blog entry


http://www.php.cn/;/id>

<link href="/blog/2005/07/2" />
<updated>2005-07-15T12:00:00Z</updated>
<summary>This is simple blog entry without a title</summary>
</entry>
</feed></pre><p><span class="code"></span><br>关键是第二行中的样式表处理指令(pi)。如果用 firefox 1.5 打开,浏览器就会尽职尽责地加载 atom2html.xslt 并显示结果。本系列文章第 2 部分(请参阅 参考资料)已经提到,查看实际的 xml 必须通过 “查看源代码”。在 firefox 2.0 中,浏览器忽略该样式表 pi 并使用定制的 firefox <a href="http://www.php.cn/code/8708.html" target="_blank">视图</a>查看,如图 1 所示(firefox 2.0.0.6、mac os x 平台上的屏幕截图)。<br><img  src="http://files.jb51.net/file_images/xml/2008101720213890677801.jpg" alt="具体介绍历数Firefox2.0对XML处理的改进的代码实例(图)" ><br>图 1. firefox 2.0 内置的 web 提要视图<br>避免这种情况并强制使用所选样式表,惟一的办法就是愚弄头脑简单的 firefox,它通过在文件前 512 个字节中查找 “rss” 或 “feed” 来判定是否为 web 提要。清单 2 采用了一种广为人知的办法,专门插入一段<a href="http://www.php.cn/code/8105.html" target="_blank">注释</a>来填充这 512 个字节。<br><strong>清单 2. 绕过 firefox 2.0 和 internet explorer 7 默认样式表处理方式的 atom 提要</strong><br><span class="code"></span></p><pre class="brush:xml;toolbar:false"><?xml version="1.0" encoding="utf-8"?>
<!-- Firefox 2.0 and Internet Explorer 7 use simplistic feed sniffing to override desired
presentation behavior for this feed, and thus we are obliged to insert this comment, a
bit of a waste of bandwidth, unfortunately. This should ensure that the following
stylesheet processing instruction is honored by these new browser versions. For some more
background you might want to visit the following bug report:
http://www.php.cn/
-->
<?xml-stylesheet type="text/xml" href="atom2html.xslt"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xml:lang="en"
xml:base="http://www.example.org">
<!-- content of the feed identical to listing 1, so trimmed -->
</feed></pre><p><span class="code"></span><br>考虑了用户社区的反对意见之后,Firefox 开发人员决定坚持自身的立场,因而这种<a href="http://www.php.cn/php/php-tp-behavior.html" target="_blank">行为</a>方式将保留到未来的 Firefox 版本之中。我个人不喜欢这种方式,您可以阅读有关的争论再决定喜欢与否。值得一提的是,这种做法与 Internet Explorer 和 Apple Safari 有相似之处。<br>
        
        
        
        
                #p#<br><strong>微<a href="http://www.php.cn/java/java-zhaiyao.html" target="_blank">摘要</a></strong><br>微摘要(microsummarie),也称为活动标题(Live Title)是 Firefox 2.0 一种简洁的新特性,可以让浏览器用网站中一些有意义的内容来替换标题,特别是在书签中。比如,IBM developerWorks 的微摘要可以用站点上的最新文章标题代替<a href="http://www.php.cn/wiki/188.html" target="_blank">静态</a>文字 “developerWorks : IBM's <a href="http://www.php.cn/wiki/61.html" target="_blank">resource</a> for developers”。网站可以提供一个微摘要,用户也可自行创建。后一种情况称为 “微摘要<a href="http://www.php.cn/wiki/230.html" target="_blank">生成器</a>”,也是本文更关注的一点,因为它要求用户端处理 XML 和 XSLT(不熟悉 XML 的人可以重复使用其他人提供的生成器)。清单 3 中的微摘要生成器提取 developerWorks 主打文章的标题。<br>清单 3. 使用 IBM developerWorks 主打文章标题的微摘要生成器<br><span class="code"></span></p><pre class="brush:xml;toolbar:false"><?xml version="1.0" encoding="UTF-8"?>
<generator xmlns="http://www.mozilla.org/microsummaries/0.1" 
name="IBM developerWorks featured article">
<template>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:html="http://www.w3.org/1999/xhtml">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:text>Featured article:</xsl:text>
<!-- On sites that make wider use of element IDs
you can use more direct and efficient XPaths -->
<xsl:value-of select="//html:a[@class='feature'][1]"/>
</xsl:template>
</xsl:transform>
</template>
<pages>
<include>http://www.php.cn/[a-zA-Z0-9]*/?</include>
</pages>
</generator></pre><p><span class="code"></span><br>生成器包括两部分:模板和页面信息。模板包括应用于网页的提取微摘要文本的 XSLT 代码。后者指定浏览器把微摘要应用于哪个页面。微摘要是简单的文本,输出指令与此相适应。微摘要的关键在于 XPath //html:a[@class='feature'][1],查找包含主打文章标题的元素。pages 部分的<a href="http://www.php.cn/wiki/1548.html" target="_blank">正则表达式</a>保证微摘要可用于网站首页和每个 developerWorks 专区的首页。 

<br>参考资料 提供的一篇教程说明了如何<a href="http://www.php.cn/php/php-tp-install.html" target="_blank">安装</a> 清单 3 这样的微摘要生成器。到目前为止,微摘要还是 Mozilla 特有的特性。<br><strong>SAX 及其他</strong><br>对于那些开发 Mozilla 扩展的人来说,最有意义的是 Mozilla XPCOM 组件系统现在提供了一个 SAX 解析器<a href="http://www.php.cn/css/css-rwd-frameworks.html" target="_blank">框架</a>。如果没有合适的高层处理技术,可以自行开发高效处理 XML 的扩展。XPCOM 集成意味着可以用 C  、JavaScript 或具有 XPCOM 绑定支持的其他任何语言来处理 SAX <a href="http://www.php.cn/php/php-tp-incident.html" target="_blank">事件</a>。<br><strong>OpenSearch</strong><br>OpenSearch 是 Amazon A9 孵化器开发的一个 XML 标准。它提供了几种 XML 格式和其他约定来描述和使用<a href="http://www.php.cn/code/8331.html" target="_blank">搜索</a>引擎。Firefox 一直强力支持可扩展的搜<a href="http://www.php.cn/code/9822.html" target="_blank">索引</a>擎插件,2.0 引入了 OpenSearch 支持,因而可以通过与 Iternet Explorer 及其他浏览器兼容的机制扩展搜索功能。<br>Firefox 支持的 OpenSearch 1.1 目前是 beta 版,为保持与 Firefox 和 OpenSearch 的兼容性,可能需要<a href="http://www.php.cn/php/php-tp-renewal.html" target="_blank">更新</a>。清单 4 提供了对于 IBM developerWorks 的 OpenSearch 描述文档。<br>清单 4. IBM developerWorks 的 OpenSearch 描述文档<br><br><span class="code"></span></p><pre class="brush:xml;toolbar:false"><?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>IBM developerWorks search</ShortName>
<Description>Search IBM developerWorks zones</Description>
<Tags>xml java architecture</Tags>
<InputEncoding>utf-8</InputEncoding>
<Contact>http://www.php.cn/
</Contact>
<!-- The template attribute is split at the "?" for formatting purposes -->
<Url type="text/html" 
template="http://www.ibm.com/developerworks/views/xml/
libraryview.jsp?
search_by={searchTerms}"/>
<Attribution>All content Copyright 2007, IBM developerWorks</Attribution>
</OpenSearchDescription></pre><p><span class="code"></span><br>该文档仅仅说明 IBM developerWorks 提供了一个搜索 URL:</p><pre class="brush:xml;toolbar:false">http://www.ibm.com/developerworks/views/xml/libraryview.jsp?search_by={searchTerms}</pre><p>其中的 {searchTerms} 是一个模板参数,搜索工具将使用搜索项目来代替它。如果搜索 “Firefox XML”,URL 将变成:</p><pre class="brush:xml;toolbar:false">http://www.ibm.com/developerworks/views/xml/libraryview.jsp?search_by=Firefox XML</pre><p>OpenSearch 规范了定义了这种 URL 模板系统。OpenSearch 还定义了把结果返回为 RSS 2.0 或 Atom 1.0 提要的约定和几种专用的扩展。Firefox 还不支持这种 Web 提要搜索结果,如果描述不含 Url 元素和 type="text/html"(表示从 URL 返回的内容类型)则返回错误。这种限制很不合理,但也可能是基于多数人仍然通过传统 HTML 表单和结果页面而不是 Web 2.0 机制搜索的现实考量。 </p><div class="aritcle_card flexRow">
							<div class="artcardd flexRow">
								<a class="aritcle_card_img" href="/ai/1801" title="万兴爱画"><img
										src="https://img.php.cn/upload/ai_manual/000/000/000/175680369151191.png" alt="万兴爱画"></a>
								<div class="aritcle_card_info flexColumn">
									<a href="/ai/1801" title="万兴爱画">万兴爱画</a>
									<p>万兴爱画AI绘画生成工具</p>
								</div>
								<a href="/ai/1801" title="万兴爱画" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
							</div>
						</div>
<p>在 Firefox 2.0 中,清单 4 这样的 OpenSearch 描述就像是完整的搜索引擎插件。网站可以使用页面头部的链接指定这样的描述,比如:<br><span class="code"></span></p><pre class="brush:xml;toolbar:false"><link rel="search" type="application/opensearchdescription xml" 
title="IBM developerWorks" 
href="/path/to/opensearch/description/document.xml"/></pre><p><span class="code"> </span><br><strong>注意</strong>:前面的三行代码通常显示为一行。为了便于显示和打印而分解成多行。<br><strong>结束语</strong><br>仍在 alpha 测试阶段的 Firefox 3.0 将带来更重要的 XML 特性。预计将在 2008 年上半年发布完整的版本。包括关于 XML 处理的重要 bug 修正和新的特性,当它成为主流 Firefox 版本的时候我将继续讨论。Mozilla 核心 XML 工具箱仍然在不断改进,对于涉及 XML 技术的开发人员和用户来说是一大福音。对于多数用户和开发人员来说,Web 浏览器是 XML 处理的脸面,本系列文章讲继续追踪和讨论最新 Firefox 版本的相关特性。<br><br></p>					</div>
					<div class="artmoreart ">
													<div class="artdp artptit"><span></span>
								<p>相关文章</p>
							</div>
							<div class="artmores flexColumn">
																	<a class="artmrlis flexRow" href="/faq/2047155.html" title="XML的空白字符(Whitespace)处理规则是什么,解析器如何对待换行和缩进?"><b></b>
										<p class="overflowclass">XML的空白字符(Whitespace)处理规则是什么,解析器如何对待换行和缩进?</p>
									</a>
																	<a class="artmrlis flexRow" href="/faq/2047115.html" title="XML上传到云存储 S3/OSS的上传SDK如何使用"><b></b>
										<p class="overflowclass">XML上传到云存储 S3/OSS的上传SDK如何使用</p>
									</a>
																	<a class="artmrlis flexRow" href="/faq/2047111.html" title="Pretty Print是什么 如何用代码美化输出的XML"><b></b>
										<p class="overflowclass">Pretty Print是什么 如何用代码美化输出的XML</p>
									</a>
																	<a class="artmrlis flexRow" href="/faq/2047105.html" title="怎么用sed命令快速修改XML文件中的值"><b></b>
										<p class="overflowclass">怎么用sed命令快速修改XML文件中的值</p>
									</a>
																	<a class="artmrlis flexRow" href="/faq/2047022.html" title="Python Pandas如何将DataFrame导出为指定XML"><b></b>
										<p class="overflowclass">Python Pandas如何将DataFrame导出为指定XML</p>
									</a>
															</div>
						
						<p class="statement">本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn</p>
						<div class="lastanext flexRow">
													<a class="lastart flexRow" href="/faq/356821.html" title="详细介绍(javascript+asp)XML、XSL转换输出HTML的示例代码"><span>上一篇:</span>详细介绍(javascript+asp)XML、XSL转换输出HTML的示例代码</a>
													<a class="nextart flexRow" href="/faq/356824.html" title="使用XML将机器内码转换为人们能够理解的信息案例分享"><span>下一篇:</span>使用XML将机器内码转换为人们能够理解的信息案例分享</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/357705.html" title="HTML5 Placeholder属性的详情介绍"><b></b>
												<p class="overflowclass">HTML5 Placeholder属性的详情介绍</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-30 09:51</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/369412.html" title="html中关于标签的全部属性的使用总结"><b></b>
												<p class="overflowclass">html中关于标签的全部属性的使用总结</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-30 14:32</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/375194.html" title="php如何快速实现数组去重的实例"><b></b>
												<p class="overflowclass">php如何快速实现数组去重的实例</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-30 15:03</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/376186.html" title="php中关于IMAP如何收取邮件的方法介绍"><b></b>
												<p class="overflowclass">php中关于IMAP如何收取邮件的方法介绍</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-31 09:38</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/377137.html" title="PHPMailer如何利用QQ邮箱完成邮件发送功能的实例分析"><b></b>
												<p class="overflowclass">PHPMailer如何利用QQ邮箱完成邮件发送功能的实例分析</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-31 10:28</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/377601.html" title="从零开始打造自己的PHP框架的视频资料"><b></b>
												<p class="overflowclass">从零开始打造自己的PHP框架的视频资料</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-31 10:45</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/379971.html" title="php基础知识总结(新手入门必备)"><b></b>
												<p class="overflowclass">php基础知识总结(新手入门必备)</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-30 14:26</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/380149.html" title="ReactJS中表单的单选多选与反选的实现方法"><b></b>
												<p class="overflowclass">ReactJS中表单的单选多选与反选的实现方法</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-30 09:45</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/381607.html" title="JavaScript中typeof的使用方法介绍"><b></b>
												<p class="overflowclass">JavaScript中typeof的使用方法介绍</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-30 11:42</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/382066.html" title="JavaScript中confirm()方法的使用介绍"><b></b>
												<p class="overflowclass">JavaScript中confirm()方法的使用介绍</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2018-05-30 10:29</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   ">
										<div   class="aibtns flexRow">
											<a target="_blank" href="/ai/723" title="DeepSeek" class="aibtnsa 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'">
											</a>
											<div class="aibtn-right flexColumn">
												<a target="_blank" href="/ai/723" title="DeepSeek" class="overflowclass abripone">DeepSeek</a>
												<p class="overflowclass abriptwo">幻方量化公司旗下的开源大模型平台</p>
																									<div class="aidconstab flexRow">
														<a class="aidcontbp flexRow flexcenter"  href="/ai/tag/code" target="_blank" >AI 编程开发</a><a class="aidcontbp flexRow flexcenter"  href="/ai/tag/chat" target="_blank" >AI 聊天问答</a>													</div>
																							</div>
										</div>
									</div>
																	<div class="aidcons flexRow   ">
										<div   class="aibtns flexRow">
											<a target="_blank" href="/ai/726" title="豆包大模型" class="aibtnsa 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'">
											</a>
											<div class="aibtn-right flexColumn">
												<a target="_blank" href="/ai/726" title="豆包大模型" class="overflowclass abripone">豆包大模型</a>
												<p class="overflowclass abriptwo">字节跳动自主研发的一系列大型语言模型</p>
																									<div class="aidconstab flexRow">
														<a class="aidcontbp flexRow flexcenter"  href="/ai/tag/code" target="_blank" >AI 编程开发</a><a class="aidcontbp flexRow flexcenter"  href="/ai/tag/code/large-model" target="_blank" >AI大模型</a>													</div>
																							</div>
										</div>
									</div>
																	<div class="aidcons flexRow   ">
										<div   class="aibtns flexRow">
											<a target="_blank" href="/ai/725" title="通义千问" class="aibtnsa 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'">
											</a>
											<div class="aibtn-right flexColumn">
												<a target="_blank" href="/ai/725" title="通义千问" class="overflowclass abripone">通义千问</a>
												<p class="overflowclass abriptwo">阿里巴巴推出的全能AI助手</p>
																									<div class="aidconstab flexRow">
														<a class="aidcontbp flexRow flexcenter"  href="/ai/tag/code" target="_blank" >AI 编程开发</a><a class="aidcontbp flexRow flexcenter"  href="/ai/tag/ai-agent" target="_blank" >Agent智能体</a>													</div>
																							</div>
										</div>
									</div>
																	<div class="aidcons flexRow   ">
										<div   class="aibtns flexRow">
											<a target="_blank" href="/ai/854" title="腾讯元宝" class="aibtnsa 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'">
											</a>
											<div class="aibtn-right flexColumn">
												<a target="_blank" href="/ai/854" title="腾讯元宝" class="overflowclass abripone">腾讯元宝</a>
												<p class="overflowclass abriptwo">腾讯混元平台推出的AI助手</p>
																									<div class="aidconstab flexRow">
														<a class="aidcontbp flexRow flexcenter"  href="/ai/tag/office/docs" target="_blank" >文档处理</a><a class="aidcontbp flexRow flexcenter"  href="/ai/tag/chat" target="_blank" >AI 聊天问答</a>													</div>
																							</div>
										</div>
									</div>
																	<div class="aidcons flexRow   ">
										<div   class="aibtns flexRow">
											<a target="_blank" href="/ai/724" title="文心一言" class="aibtnsa 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'">
											</a>
											<div class="aibtn-right flexColumn">
												<a target="_blank" href="/ai/724" title="文心一言" class="overflowclass abripone">文心一言</a>
												<p class="overflowclass abriptwo">文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。</p>
																									<div class="aidconstab flexRow">
														<a class="aidcontbp flexRow flexcenter"  href="/ai/tag/code" target="_blank" >AI 编程开发</a><a class="aidcontbp flexRow flexcenter"  href="/ai/tag/text" target="_blank" >AI 文本写作</a>													</div>
																							</div>
										</div>
									</div>
																	<div class="aidcons flexRow   ">
										<div   class="aibtns flexRow">
											<a target="_blank" href="/ai/1507" title="讯飞写作" class="aibtnsa 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'">
											</a>
											<div class="aibtn-right flexColumn">
												<a target="_blank" href="/ai/1507" title="讯飞写作" class="overflowclass abripone">讯飞写作</a>
												<p class="overflowclass abriptwo">基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿</p>
																									<div class="aidconstab flexRow">
														<a class="aidcontbp flexRow flexcenter"  href="/ai/tag/text" target="_blank" >AI 文本写作</a><a class="aidcontbp flexRow flexcenter"  href="/ai/tag/text/chinese-writing" target="_blank" >中文写作</a>													</div>
																							</div>
										</div>
									</div>
																	<div class="aidcons flexRow   ">
										<div   class="aibtns flexRow">
											<a target="_blank" href="/ai/1115" title="即梦AI" class="aibtnsa 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'">
											</a>
											<div class="aibtn-right flexColumn">
												<a target="_blank" href="/ai/1115" title="即梦AI" class="overflowclass abripone">即梦AI</a>
												<p class="overflowclass abriptwo">一站式AI创作平台,免费AI图片和视频生成。</p>
																									<div class="aidconstab flexRow">
														<a class="aidcontbp flexRow flexcenter"  href="" target="_blank" ></a><a class="aidcontbp flexRow flexcenter"  href="/ai/tag/image/image-titching" target="_blank" >图片拼接</a>													</div>
																							</div>
										</div>
									</div>
																	<div class="aidcons flexRow   ">
										<div   class="aibtns flexRow">
											<a target="_blank" href="/ai/808" title="ChatGPT" class="aibtnsa 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'">
											</a>
											<div class="aibtn-right flexColumn">
												<a target="_blank" href="/ai/808" title="ChatGPT" class="overflowclass abripone">ChatGPT</a>
												<p class="overflowclass abriptwo">最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。</p>
																									<div class="aidconstab flexRow">
														<a class="aidcontbp flexRow flexcenter"  href="/ai/tag/code" target="_blank" >AI 编程开发</a><a class="aidcontbp flexRow flexcenter"  href="/ai/tag/text" target="_blank" >AI 文本写作</a>													</div>
																							</div>
										</div>
									</div>
																	<div class="aidcons flexRow   ">
										<div   class="aibtns flexRow">
											<a target="_blank" href="/ai/821" title="智谱清言 - 免费全能的AI助手" class="aibtnsa 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'">
											</a>
											<div class="aibtn-right flexColumn">
												<a target="_blank" href="/ai/821" title="智谱清言 - 免费全能的AI助手" class="overflowclass abripone">智谱清言 - 免费全能的AI助手</a>
												<p class="overflowclass abriptwo">智谱清言 - 免费全能的AI助手</p>
																									<div class="aidconstab flexRow">
														<a class="aidcontbp flexRow flexcenter"  href="/ai/tag/code" target="_blank" >AI 编程开发</a><a class="aidcontbp flexRow flexcenter"  href="/ai/tag/ai-agent" target="_blank" >Agent智能体</a>													</div>
																							</div>
										</div>
									</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/csjmsyrjjg" class="aClass flexRow hotzta" title="C++ 设计模式与软件架构"><img
										src="https://img.php.cn/upload/subject/202601/30/2026013010035824284.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="C++ 设计模式与软件架构" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/csjmsyrjjg" class="aClass flexRow hotztra overflowclass" title="C++ 设计模式与软件架构">C++ 设计模式与软件架构</a>
									<p class="aClass flexRow hotztrp overflowclass">本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">14</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.30</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/cjjzfcgsh" class="aClass flexRow hotzta" title="c++ 字符串格式化"><img
										src="https://img.php.cn/upload/subject/202601/30/2026013009581328823.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="c++ 字符串格式化" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/cjjzfcgsh" class="aClass flexRow hotztra overflowclass" title="c++ 字符串格式化">c++ 字符串格式化</a>
									<p class="aClass flexRow hotztrp overflowclass">本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">9</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.30</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javazfcgsh" class="aClass flexRow hotzta" title="java 字符串格式化"><img
										src="https://img.php.cn/upload/subject/202601/30/2026013009503958383.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="java 字符串格式化" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/javazfcgsh" class="aClass flexRow hotztra overflowclass" title="java 字符串格式化">java 字符串格式化</a>
									<p class="aClass flexRow hotztrp overflowclass">本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">12</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.30</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/pythonzfcgsh" class="aClass flexRow hotzta" title="python 字符串格式化"><img
										src="https://img.php.cn/upload/subject/202601/30/2026013009412416721.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="python 字符串格式化" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/pythonzfcgsh" class="aClass flexRow hotztra overflowclass" title="python 字符串格式化">python 字符串格式化</a>
									<p class="aClass flexRow hotztrp overflowclass">本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">4</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.30</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javarmxxhj" class="aClass flexRow hotzta" title="java入门学习合集"><img
										src="https://img.php.cn/upload/subject/000/000/075/697b40d167f7c445.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="java入门学习合集" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/javarmxxhj" class="aClass flexRow hotztra overflowclass" title="java入门学习合集">java入门学习合集</a>
									<p class="aClass flexRow hotztrp overflowclass">本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">20</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.29</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javapzhjbljch" class="aClass flexRow hotzta" title="java配置环境变量教程合集"><img
										src="https://img.php.cn/upload/subject/000/000/075/697b3eeca4c96290.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="java配置环境变量教程合集" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/javapzhjbljch" class="aClass flexRow hotztra overflowclass" title="java配置环境变量教程合集">java配置环境变量教程合集</a>
									<p class="aClass flexRow hotztrp overflowclass">本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">18</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.29</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javacpxxwz" class="aClass flexRow hotzta" title="java成品学习网站推荐大全"><img
										src="https://img.php.cn/upload/subject/000/000/075/697b3ce34c1ad790.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="java成品学习网站推荐大全" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/javacpxxwz" class="aClass flexRow hotztra overflowclass" title="java成品学习网站推荐大全">java成品学习网站推荐大全</a>
									<p class="aClass flexRow hotztrp overflowclass">本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">19</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.29</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javazfcclsyjc" class="aClass flexRow hotzta" title="Java字符串处理使用教程合集"><img
										src="https://img.php.cn/upload/subject/000/000/075/697b3a2f0eba1672.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="Java字符串处理使用教程合集" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/javazfcclsyjc" class="aClass flexRow hotztra overflowclass" title="Java字符串处理使用教程合集">Java字符串处理使用教程合集</a>
									<p class="aClass flexRow hotztrp overflowclass">本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">3</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.29</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javakdxxgjchj" class="aClass flexRow hotzta" title="Java空对象相关教程合集"><img
										src="https://img.php.cn/upload/subject/000/000/075/697b37db731a5352.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="Java空对象相关教程合集" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/javakdxxgjchj" class="aClass flexRow hotztra overflowclass" title="Java空对象相关教程合集">Java空对象相关教程合集</a>
									<p class="aClass flexRow hotztrp overflowclass">本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">6</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.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="jQuery鼠标滚轮控制幻灯片切换" href="/xiazai/js/8740"><span>[图片特效]</span><span>jQuery鼠标滚轮控制幻灯片切换</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jQuery微信手机端答题表单特效" href="/xiazai/js/8739"><span>[表单按钮]</span><span>jQuery微信手机端答题表单特效</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="js正则表达式表单验证代码" href="/xiazai/js/8738"><span>[表单按钮]</span><span>js正则表达式表单验证代码</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="CSS3图片形状遮罩动画效果" href="/xiazai/js/8737"><span>[图片特效]</span><span>CSS3图片形状遮罩动画效果</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="div css手机网站login表单特效" href="/xiazai/js/8736"><span>[表单按钮]</span><span>div css手机网站login表单特效</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="qq空间遮罩层jQuery相册切换" href="/xiazai/js/8735"><span>[图片特效]</span><span>qq空间遮罩层jQuery相册切换</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jquery衣服尺寸勾选表单" href="/xiazai/js/8734"><span>[表单按钮]</span><span>jquery衣服尺寸勾选表单</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="22款不同效果产品图片展示切换" href="/xiazai/js/8733"><span>[图片特效]</span><span>22款不同效果产品图片展示切换</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jquery带登录注册幻灯片代码" href="/xiazai/js/8732"><span>[表单按钮]</span><span>jquery带登录注册幻灯片代码</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jQuery图片放大变小切换代码" href="/xiazai/js/8731"><span>[图片特效]</span><span>jQuery图片放大变小切换代码</span></a>
									</div>
								</li>
													</ul>
						<ul class="twof" style="display:none;">
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/code/11355" title="openaishop"><span>[电商源码]</span><span>openaishop</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/code/11354" title="思翔企(事)业单位文件柜 build 20080313"><span>[其它模板]</span><span>思翔企(事)业单位文件柜 build 20080313</span> </a>
									</div>
								</li>
															<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>
													</ul>
						<ul class="threef" style="display:none;">
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4307" title="手绘烘焙面包食材合集矢量素材"><span>[网站素材]</span><span>手绘烘焙面包食材合集矢量素材</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4306" title="复古红日山峰风景矢量素材"><span>[网站素材]</span><span>复古红日山峰风景矢量素材</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4305" title="极简复古意大利面海报矢量模板"><span>[网站素材]</span><span>极简复古意大利面海报矢量模板</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4304" title="国风红色灯笼装饰合集矢量素材"><span>[网站素材]</span><span>国风红色灯笼装饰合集矢量素材</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4303" title="快餐美食宣传海报模板INS下载"><span>[网站素材]</span><span>快餐美食宣传海报模板INS下载</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4302" title="卡通灯塔房屋建筑合集矢量素材"><span>[网站素材]</span><span>卡通灯塔房屋建筑合集矢量素材</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4301" title="黑色耳机宣传海报PSD模板设计下载"><span>[网站素材]</span><span>黑色耳机宣传海报PSD模板设计下载</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4300" title="冬季蓝色雪花松枝合集矢量素材"><span>[网站素材]</span><span>冬季蓝色雪花松枝合集矢量素材</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4299" title="情人节爱心主题海报PSD源文件设计下载"><span>[网站素材]</span><span>情人节爱心主题海报PSD源文件设计下载</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4298" title="2026粉色梦幻马年矢量模板"><span>[网站素材]</span><span>2026粉色梦幻马年矢量模板</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="php商城系统" href="/xiazai/code/11178">php商城系统</a></div>
											<div class="xgwzlid flexRow"><b></b><a target="_blank" title="淘源码商城PHP淘宝查信誉" href="/xiazai/code/11177">淘源码商城PHP淘宝查信誉</a></div>
											<div class="xgwzlid flexRow"><b></b><a target="_blank" title="PHP房产程序[BBWPS]" href="/xiazai/code/11165">PHP房产程序[BBWPS]</a></div>
											<div class="xgwzlid flexRow"><b></b><a target="_blank" title="PHP简约自动发卡平台个人版" href="/xiazai/code/11128">PHP简约自动发卡平台个人版</a></div>
											<div class="xgwzlid flexRow"><b></b><a target="_blank" title="ERMEB域名PHP离线网络授权系统" href="/xiazai/code/11040">ERMEB域名PHP离线网络授权系统</a></div>
											<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Difeye-敏捷的轻量级PHP框架" href="/xiazai/code/11037">Difeye-敏捷的轻量级PHP框架</a></div>
											<div class="xgwzlid flexRow"><b></b><a target="_blank" title="大泉州汽车网PHP整站程序" href="/xiazai/code/10963">大泉州汽车网PHP整站程序</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/1662.html" title="XML教程">
									<img src="https://img.php.cn/upload/course/000/000/090/6889d9811cd5b843.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="XML教程" class="ristyAimg"
										onerror="this.src='/static/mobimages/moren/morentu.png'">
								</a>
								<div class="ristyaRight flexColumn">
									<a target="_blank" href="/course/1662.html" title="XML教程"
										class="rirightp overflowclass">XML教程</a>

									<div class="risrdown flexRow">
										<p>共142课时 | 6万人学习</p>
									</div>
								</div>
							</div>
													<div  class="ristyA flexRow " >
								<a target="_blank" href="/course/54.html" title="XQuery 教程">
									<img src="https://img.php.cn/upload/course/000/000/068/6261193d7bfd4719.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="XQuery 教程" class="ristyAimg"
										onerror="this.src='/static/mobimages/moren/morentu.png'">
								</a>
								<div class="ristyaRight flexColumn">
									<a target="_blank" href="/course/54.html" title="XQuery 教程"
										class="rirightp overflowclass">XQuery 教程</a>

									<div class="risrdown flexRow">
										<p>共12课时 | 3.8万人学习</p>
									</div>
								</div>
							</div>
													<div  class="ristyA flexRow " >
								<a target="_blank" href="/course/55.html" title="XLink  教程">
									<img src="https://img.php.cn/upload/course/000/000/068/6261170629d0a718.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="XLink  教程" class="ristyAimg"
										onerror="this.src='/static/mobimages/moren/morentu.png'">
								</a>
								<div class="ristyaRight flexColumn">
									<a target="_blank" href="/course/55.html" title="XLink  教程"
										class="rirightp overflowclass">XLink  教程</a>

									<div class="risrdown flexRow">
										<p>共7课时 | 1.1万人学习</p>
									</div>
								</div>
							</div>
												</div>

						<div class="twofd jpktabd" style="display:none;">
															<div  class="ristyA flexRow " >
									<a target="_blank" href="/course/1656.html" title="JavaScript ES5基础线上课程教学">
										<img src="https://img.php.cn/upload/course/000/000/081/6862652adafef801.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="JavaScript ES5基础线上课程教学" class="ristyAimg"
											onerror="this.src='/static/mobimages/moren/morentu.png'">
									</a>
									<div class="ristyaRight flexColumn">
										<a target="_blank" href="/course/1656.html" title="JavaScript ES5基础线上课程教学"
											class="rirightp overflowclass">JavaScript ES5基础线上课程教学</a>

										<div class="risrdown flexRow">
											<p>共6课时 | 11.2万人学习</p>
										</div>
									</div>
								</div>
															<div  class="ristyA flexRow " >
									<a target="_blank" href="/course/812.html" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)">
										<img src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" class="ristyAimg"
											onerror="this.src='/static/mobimages/moren/morentu.png'">
									</a>
									<div class="ristyaRight flexColumn">
										<a target="_blank" href="/course/812.html" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)"
											class="rirightp overflowclass">最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)</a>

										<div class="risrdown flexRow">
											<p>共79课时 | 151.8万人学习</p>
										</div>
									</div>
								</div>
															<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.4万人学习</p>
										</div>
									</div>
								</div>
													</div>

						<div class="threefd jpktabd" style="display:none;">
															<div  class="ristyA flexRow " >
										<a target="_blank" href="/course/1696.html" title="最新Python教程 从入门到精通">
											<img src="https://img.php.cn/upload/course/000/000/081/68c135bb72783194.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="最新Python教程 从入门到精通" class="ristyAimg"
												onerror="this.src='/static/mobimages/moren/morentu.png'">
										</a>
										<div class="ristyaRight flexColumn">
											<a target="_blank" href="/course/1696.html" title="最新Python教程 从入门到精通"
												class="rirightp overflowclass">最新Python教程 从入门到精通</a>

											<div class="risrdown flexRow">
												<p>共4课时 | 22.4万人学习</p>
											</div>
										</div>
									</div>
																<div  class="ristyA flexRow " >
										<a target="_blank" href="/course/1656.html" title="JavaScript ES5基础线上课程教学">
											<img src="https://img.php.cn/upload/course/000/000/081/6862652adafef801.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="JavaScript ES5基础线上课程教学" class="ristyAimg"
												onerror="this.src='/static/mobimages/moren/morentu.png'">
										</a>
										<div class="ristyaRight flexColumn">
											<a target="_blank" href="/course/1656.html" title="JavaScript ES5基础线上课程教学"
												class="rirightp overflowclass">JavaScript ES5基础线上课程教学</a>

											<div class="risrdown flexRow">
												<p>共6课时 | 11.2万人学习</p>
											</div>
										</div>
									</div>
																<div  class="ristyA flexRow " >
										<a target="_blank" href="/course/1655.html" title="PHP新手语法线上课程教学">
											<img src="https://img.php.cn/upload/course/000/000/081/684a8c23d811b293.png?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/1655.html" title="PHP新手语法线上课程教学"
												class="rirightp overflowclass">PHP新手语法线上课程教学</a>

											<div class="risrdown flexRow">
												<p>共13课时 | 0.9万人学习</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="Istio如何为XML上传服务实现流量管理和熔断" href="/faq/2047283.html">Istio如何为XML上传服务实现流量管理和熔断</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="XQuery在XML数据映射中的高级用法" href="/faq/2047258.html">XQuery在XML数据映射中的高级用法</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Java解析XML时如何处理CDATA节点" href="/faq/2047254.html">Java解析XML时如何处理CDATA节点</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="C#如何验证XML文件的数字签名" href="/faq/2047249.html">C#如何验证XML文件的数字签名</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="XML数据脱敏在映射过程中如何实现" href="/faq/2047192.html">XML数据脱敏在映射过程中如何实现</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="XML的空白字符(Whitespace)处理规则是什么,解析器如何对待换行和缩进?" href="/faq/2047155.html">XML的空白字符(Whitespace)处理规则是什么,解析器如何对待换行和缩进?</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="XML上传到云存储 S3/OSS的上传SDK如何使用" href="/faq/2047115.html">XML上传到云存储 S3/OSS的上传SDK如何使用</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Pretty Print是什么 如何用代码美化输出的XML" href="/faq/2047111.html">Pretty Print是什么 如何用代码美化输出的XML</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="怎么用sed命令快速修改XML文件中的值" href="/faq/2047105.html">怎么用sed命令快速修改XML文件中的值</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Altova MapForce的全局变量如何使用" href="/faq/2047088.html">Altova MapForce的全局变量如何使用</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-2026 <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=356822&time=1769792294">
</script>
<script src="/static/ueditor/third-party/SyntaxHighlighter/shCore.js?1769792294"></script>
<script>
	article_status = "194";
</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>