0

0

DOM和SAX解析有何优劣?

小老鼠

小老鼠

发布时间:2025-09-10 13:42:01

|

1247人浏览过

|

来源于php中文网

原创

DOM适合小文档的灵活操作,SAX擅长处理大文档的性能和内存效率。DOM将整个XML加载到内存构建树结构,便于随机访问和修改,但内存消耗大;SAX以事件流方式逐行解析,内存占用小,适合处理大型文件,但编程复杂度高,不支持随机访问。选择取决于文档大小、内存限制、是否需要修改文档及开发效率需求。

dom和sax解析有何优劣?

DOM和SAX解析器各有其独特的优势和劣势,核心区别在于它们处理XML文档的方式:DOM将整个XML文档加载到内存中,构建一个可供随意导航和修改的对象树;而SAX则以事件流的形式逐行读取文档,不将整个文档加载到内存。简单来说,DOM适合小文档的灵活操作,SAX则擅长处理大文档的性能和内存效率。

解决方案

在选择DOM还是SAX时,我们其实是在权衡便利性与资源效率。DOM解析器,全称Document Object Model,它将XML文档解析成一个树形结构,每个元素、属性、文本内容都成为树上的一个节点。这种方式的好处显而易见的:你可以像操作一个普通对象一样,随意访问树中的任何节点,修改它的内容,删除它,或者添加新的节点。比如,你可能需要查找某个特定标签下的所有子标签,或者根据某个条件修改文档中的多处内容,DOM的随机访问能力让这些操作变得异常直观和便捷。我个人在处理一些配置文件或者小型数据交换文件时,总是倾向于DOM,因为它能让我在代码里少操很多心,直接用XPath之类的工具就能定位到我想要的数据。

然而,这种便利性是有代价的。当XML文档的规模变得庞大时,DOM的内存消耗会急剧增加。想象一下,一个1GB的XML文件,解析成DOM树后,在内存中占据的空间可能会是原始文件的数倍,因为每个节点对象除了存储实际数据,还需要额外的开销来维护其结构信息(如父子节点引用、属性列表等)。这在内存受限的环境下,或者需要处理海量数据流时,几乎是不可接受的。我曾经就遇到过一个系统,因为用DOM解析了一个几百兆的日志文件,直接导致内存溢出,服务崩溃,那次经历真是让我对DOM的“胃口”有了深刻的认识。

SAX解析器,Simple API for XML,则完全是另一种哲学。它不构建任何内存中的树形结构,而是以事件驱动的方式工作。当SAX解析器读取到XML文档的开始标签、结束标签、文本内容或者属性时,它会触发相应的事件,并将这些信息传递给你的应用程序。你的代码需要实现这些事件处理器,来“捕获”并处理这些事件。这种流式处理的特点决定了SAX的内存占用非常小,因为它一次只处理文档的一小部分,不需要将整个文档加载到内存。这对于处理超大型XML文件或者在内存资源紧张的服务器上运行的应用程序来说,简直是救命稻草。

但SAX的缺点也很明显,因为它只提供事件流,你无法像DOM那样轻松地在文档中前后跳转,也无法直接修改文档结构。如果你需要获取某个节点的完整信息,你可能需要在多个事件之间手动维护一个“状态机”,比如记录当前所处的元素路径、收集子元素的数据等等。这使得SAX的代码编写通常比DOM复杂,尤其是当XML结构复杂或者你需要进行复杂的业务逻辑判断时,维护这个状态会变得非常繁琐,一不小心就可能出错。这种“只进不出”的特性,让它更适合于数据抽取、验证等一次性读取的场景。

DOM解析的内存消耗究竟有多大?

DOM解析器在内存消耗上的表现,往往超乎初学者的想象。它不仅仅是将XML文件的文本内容原封不动地搬进内存,而是将其转换为一系列相互关联的对象。一个XML元素,比如

...
,在DOM树中可能对应一个
Element
对象,它会包含:一个字符串表示的标签名("book"),一个属性列表(其中包含
Attr
对象,每个
Attr
对象又包含属性名"id"和属性值"123"的字符串),以及指向其父节点和子节点的引用。如果这个元素还有文本内容,那又是一个
Text
节点对象。每个对象在Java或C#等语言中,都有其固定的内存开销(对象头、字段引用等),字符串更是会额外占用空间。

所以,一个看似只有几百MB的XML文件,当它被解析成DOM树后,其在内存中的实际占用空间往往会膨胀到原始文件大小的5到10倍,甚至更多。这就像你把一堆散装的零件堆在一起,和把它们组装成一个复杂的机械装置,后者不仅占地面积更大,还需要额外的空间来容纳连接件和支撑结构。这种内存爆炸式增长,对于服务器应用来说是致命的。当系统内存不足时,会频繁触发垃圾回收(GC),导致应用程序响应变慢,甚至直接抛出

OutOfMemoryError
。尤其是在处理TB级别的数据流时,DOM几乎是不可能完成的任务,除非你有无限的内存资源。

SAX解析在处理复杂XML结构时有哪些挑战?

SAX解析器虽然内存效率极高,但在处理复杂或嵌套层级深的XML结构时,确实会给开发者带来不小的挑战。它的核心机制是事件驱动,意味着你接收到的只是一个个孤立的事件:一个开始标签,一个结束标签,一段文本。SAX本身并不会帮你构建任何上下文信息。

SpeechEasy
SpeechEasy

SpeechEasy是一种合成语音解决方案,可以让用户从文本生成高质量、易于理解的音频。

下载

举个例子,假设你有一个XML文件,里面有多个

元素,每个
下又有
</pre>、<pre class="brush:php;toolbar:false;"><author></pre>和<pre class="brush:php;toolbar:false;"><price></pre>。当SAX解析器触发<pre class="brush:php;toolbar:false;">startElement</pre>事件时,你只知道现在遇到了一个<pre class="brush:php;toolbar:false;"><book></pre>标签。但它具体是哪本书?它的标题是什么?这些信息需要你自己去追踪和管理。你可能需要维护一个栈(Stack)来记录当前的元素路径,每当遇到<pre class="brush:php;toolbar:false;">startElement</pre>就压栈,遇到<pre class="brush:php;toolbar:false;">endElement</pre>就出栈。当解析到<pre class="brush:php;toolbar:false;"><title></pre>的文本内容时,你需要知道这个<pre class="brush:php;toolbar:false;"><title></pre>是属于哪个<pre class="brush:php;toolbar:false;"><book></pre>的。</p>
<p>这种手动维护上下文、构建数据结构的过程,在XML结构简单时还好说,一旦XML文档的嵌套层级加深,或者出现同名标签但含义不同的情况(比如一个<pre class="brush:php;toolbar:false;"><item></pre>下有<pre class="brush:php;toolbar:false;"><name></pre>,另一个<pre class="brush:php;toolbar:false;"><order></pre>下也有<pre class="brush:php;toolbar:false;"><name></pre>),你的状态机就会变得异常复杂。代码中会充斥着大量的条件判断和状态变量,逻辑交织,可读性和可维护性都会大幅下降。调试起来也相当困难,因为你无法像DOM那样直观地查看整个文档结构,只能通过事件流来推断当前的状态。这种“盲人摸象”式的处理方式,是SAX在面对复杂XML时最让人头疼的地方。</p>
<h3>何时选择DOM,何时选择SAX:实用场景分析</h3>
<p>选择DOM还是SAX,归根结底是根据你的具体需求和资源限制来决定的。没有绝对的优劣,只有最适合的工具。</p>
<p><strong>选择DOM的场景:</strong></p>
<ul>
<li>
<strong>XML文档规模较小:</strong> 如果你的XML文件通常只有几十KB到几MB,那么DOM的内存开销完全可以接受。它提供的便利性远大于其潜在的内存风险。</li>
<li>
<strong>需要频繁地随机访问和导航:</strong> 当你需要根据某些条件查找文档中的特定节点,或者在文档的不同部分之间来回跳转时,DOM的树形结构让这些操作变得轻而易举。</li>
<li>
<strong>需要修改或重构XML文档:</strong> 如果你的任务是解析XML,然后修改其中的内容,或者添加/删除节点,最后再将其序列化回XML,那么DOM是唯一合理的选择,因为SAX无法直接修改文档。</li>
<li>
<strong>需要使用XPath或XSLT:</strong> 这些强大的XML查询和转换语言是基于DOM模型设计的,如果你的应用依赖它们,那么DOM是不可或缺的。</li>
<li>
<strong>开发效率优先:</strong> 对于一些非性能关键型的内部工具或脚本,DOM的API通常更简单直观,可以显著提高开发速度。</li>
</ul>
<p><strong>选择SAX的场景:</strong></p>
<ul>
<li>
<strong>XML文档规模巨大:</strong> 当你处理的XML文件有几十MB、几百MB甚至数GB时,SAX是唯一的选择。它的低内存占用可以避免内存溢出,确保应用程序的稳定运行。</li>
<li>
<strong>内存资源受限的环境:</strong> 在嵌入式系统、移动设备或一些对内存有严格限制的服务器环境中,SAX可以帮助你有效控制资源消耗。</li>
<li>
<strong>只需要抽取特定数据,无需构建完整结构:</strong> 如果你的目标仅仅是从XML中提取某些特定的字段或数据,而不需要关心整个文档的结构,SAX的事件驱动模型可以让你只关注那些你感兴趣的事件,忽略其他。</li>
<li>
<strong>流式处理数据:</strong> 当数据以流的形式源源不断地到来,并且你需要即时处理这些数据时,SAX的流式处理特性非常适合。它不需要等待整个文档加载完毕才能开始处理。</li>
<li>
<strong>性能是首要考虑因素:</strong> 在需要极高性能的数据解析场景下,SAX通常比DOM更快,因为它避免了构建复杂对象树的开销。</li>
</ul>
<p>在实际开发中,有时我们也会遇到一些折衷方案。例如,对于超大型XML,但又需要部分DOM操作的场景,可以考虑先用SAX解析,将感兴趣的某个子树提取出来,然后对这个子树再用DOM进行解析和操作。这种混合策略可以兼顾性能和便利性。但无论如何,理解DOM和SAX各自的优缺点,是做出正确技术选型的前提。</p>					</div>
					<div class="artmoreart ">
													<div class="artdp artptit"><span></span>
								<p>相关文章</p>
							</div>
							<div class="artmores flexColumn">
																	<a class="artmrlis flexRow" href="/faq/2020100.html" title="Java NIO如何处理XML文件上传 提升高并发处理能力"><b></b>
										<p class="overflowclass">Java NIO如何处理XML文件上传 提升高并发处理能力</p>
									</a>
																	<a class="artmrlis flexRow" href="/faq/2019448.html" title="XSD是什么 如何用它来验证XML文件格式"><b></b>
										<p class="overflowclass">XSD是什么 如何用它来验证XML文件格式</p>
									</a>
																	<a class="artmrlis flexRow" href="/faq/2015141.html" title="ehcache.xml是什么 如何用它来配置Java缓存策略"><b></b>
										<p class="overflowclass">ehcache.xml是什么 如何用它来配置Java缓存策略</p>
									</a>
																	<a class="artmrlis flexRow" href="/faq/2011149.html" title="FTP上传XML文件 Java/Python脚本如何实现"><b></b>
										<p class="overflowclass">FTP上传XML文件 Java/Python脚本如何实现</p>
									</a>
																	<a class="artmrlis flexRow" href="/faq/2011079.html" title="Java如何生成XML文件并提供下载 HttpServletResponse设置详解"><b></b>
										<p class="overflowclass">Java如何生成XML文件并提供下载 HttpServletResponse设置详解</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/15731.html" target="_blank">java</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/16030.html" target="_blank">处理器</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/16887.html" target="_blank">工具</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/27988.html" target="_blank">区别</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/33388.html" target="_blank">c#</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/38616.html" target="_blank">内存占用</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=Java" target="_blank">Java</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=for" target="_blank">for</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=栈" 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=对象" 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=嵌入式系统" target="_blank">嵌入式系统</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=重构" target="_blank">重构</a>								</div>
							</div>
						
						<p class="statement">本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn</p>
						<div class="lastanext flexRow">
													<a class="lastart flexRow" href="/faq/1508883.html" title="XML如何与数据库同步?"><span>上一篇:</span>XML如何与数据库同步?</a>
													<a class="nextart flexRow" href="/faq/1508893.html" title="RSS订阅如何排序?"><span>下一篇:</span>RSS订阅如何排序?</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/2020104.html" title="电脑如何重装系统 U盘重装Win10/Win11系统的详细教程【新手指南】"><b></b>
												<p class="overflowclass">电脑如何重装系统 U盘重装Win10/Win11系统的详细教程【新手指南】</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 09:51</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/2020107.html" title="FIXML(FIX协议的XML编码)是什么"><b></b>
												<p class="overflowclass">FIXML(FIX协议的XML编码)是什么</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 09:52</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/2020110.html" title="XML上传接口的幂等性如何保证 如何防止重复提交"><b></b>
												<p class="overflowclass">XML上传接口的幂等性如何保证 如何防止重复提交</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 09:52</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/2020112.html" title="SVG怎么响应鼠标事件 onclick in SVG XML"><b></b>
												<p class="overflowclass">SVG怎么响应鼠标事件 onclick in SVG XML</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 09:53</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/2020114.html" title="当当网礼品卡兑换 当当网优惠券领取中心入口"><b></b>
												<p class="overflowclass">当当网礼品卡兑换 当当网优惠券领取中心入口</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 09:54</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/2020115.html" title="c# BlockingCollection.GetConsumingEnumerable 的用法"><b></b>
												<p class="overflowclass">c# BlockingCollection.GetConsumingEnumerable 的用法</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 09:54</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/2020132.html" title="SAML响应的XML签名怎么验证"><b></b>
												<p class="overflowclass">SAML响应的XML签名怎么验证</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 09:59</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/2020150.html" title="宝书网免费小说入口 宝书网免费电子书在线入口"><b></b>
												<p class="overflowclass">宝书网免费小说入口 宝书网免费电子书在线入口</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 10:03</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/2020163.html" title="卫生间小飞虫怎么消灭?家里飞虫根除最快的方法【一杯水搞定】"><b></b>
												<p class="overflowclass">卫生间小飞虫怎么消灭?家里飞虫根除最快的方法【一杯水搞定】</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 10:06</p>
											</div>
										</div>
								</div>
																	<div class="authlist flexColumn">
										<div class="autharts flexRow">
											<a class="autharta flexRow " href="/faq/2020164.html" title="微信实名自查怎么查 微信实名自查操作流程【图文详细步骤】"><b></b>
												<p class="overflowclass">微信实名自查怎么查 微信实名自查操作流程【图文详细步骤】</p>
											</a>
											<div class="authtime flexRow"><b></b>
												<p>2026-01-23 10:06</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/ai-application/software" title="PC软件" class="aidcontbp flexRow flexcenter">PC软件</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/java" class="aClass flexRow hotzta" title="java"><img
										src="https://img.php.cn/upload/subject/202306/15/2023061516554728875.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/java" class="aClass flexRow hotztra overflowclass" title="java">java</a>
									<p class="aClass flexRow hotztrp overflowclass">Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">844</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2023.06.15</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javazzbds" class="aClass flexRow hotzta" title="java正则表达式语法"><img
										src="https://img.php.cn/upload/subject/202307/05/2023070515225313388.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/javazzbds" class="aClass flexRow hotztra overflowclass" title="java正则表达式语法">java正则表达式语法</a>
									<p class="aClass flexRow hotztrp overflowclass">java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">743</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2023.07.05</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javazxnm" class="aClass flexRow hotzta" title="java自学难吗"><img
										src="https://img.php.cn/upload/subject/202307/31/2023073113530059930.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/javazxnm" class="aClass flexRow hotztra overflowclass" title="java自学难吗">java自学难吗</a>
									<p class="aClass flexRow hotztrp overflowclass">Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">740</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2023.07.31</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javapzjdkhjbl" class="aClass flexRow hotzta" title="java配置jdk环境变量"><img
										src="https://img.php.cn/upload/subject/202308/01/2023080110221833162.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="java配置jdk环境变量" class="hotztaimg"
										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
								<div class="hotztright flexColumn">
									<a target="_blank" href="/faq/javapzjdkhjbl" class="aClass flexRow hotztra overflowclass" title="java配置jdk环境变量">java配置jdk环境变量</a>
									<p class="aClass flexRow hotztrp overflowclass">Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">397</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2023.08.01</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javabllwxsd" class="aClass flexRow hotzta" title="java保留两位小数"><img
										src="https://img.php.cn/upload/subject/202308/02/2023080211185213584.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/javabllwxsd" class="aClass flexRow hotztra overflowclass" title="java保留两位小数">java保留两位小数</a>
									<p class="aClass flexRow hotztrp overflowclass">Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">400</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2023.08.02</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javajbsj" class="aClass flexRow hotzta" title="java基本数据类型"><img
										src="https://img.php.cn/upload/subject/202308/02/2023080214201163038.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/javajbsj" class="aClass flexRow hotztra overflowclass" title="java基本数据类型">java基本数据类型</a>
									<p class="aClass flexRow hotztrp overflowclass">java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">447</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2023.08.02</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javaysm" class="aClass flexRow hotzta" title="java有什么用"><img
										src="https://img.php.cn/upload/subject/202308/02/2023080215391782115.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/javaysm" class="aClass flexRow hotztra overflowclass" title="java有什么用">java有什么用</a>
									<p class="aClass flexRow hotztrp overflowclass">java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">431</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2023.08.02</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/javazxwz" class="aClass flexRow hotzta" title="java在线网站"><img
										src="https://img.php.cn/upload/subject/202308/03/2023080311132935431.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/javazxwz" class="aClass flexRow hotztra overflowclass" title="java在线网站">java在线网站</a>
									<p class="aClass flexRow hotztrp overflowclass">Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。</p>
									<div class="hotztrdown flexRow">
										<div class="htztdsee flexRow"> <b></b>
											<p class="">16926</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2023.08.03</p>
										</div>
									</div>
								</div>
							</div>
													<div class="hotztlls flexRow">
								<a target="_blank" href="/faq/cjjkgxgjchj" class="aClass flexRow hotzta" title="c++空格相关教程合集"><img
										src="https://img.php.cn/upload/subject/202601/23/2026012320405281523.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/cjjkgxgjchj" 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="">0</p>
										</div>
										<div class="htztdTime flexRow"> <b></b>
											<p>2026.01.23</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 360度全景图插件" href="/xiazai/js/8617"><span>[图片特效]</span><span>jQuery 360度全景图插件</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jQuery QQ登陆框效果" href="/xiazai/js/8616"><span>[表单按钮]</span><span>jQuery QQ登陆框效果</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="电商网店主图展示代码" href="/xiazai/js/8615"><span>[图片特效]</span><span>电商网店主图展示代码</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jQ顶部下拉ajax验证表单 jQuery顶部下拉ajax验证表单代码下载" href="/xiazai/js/8614"><span>[表单按钮]</span><span>jQ顶部下拉ajax验证表单 jQuery顶部下拉ajax验证表单代码下载</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jQuery表单步骤流程导航" href="/xiazai/js/8613"><span>[表单按钮]</span><span>jQuery表单步骤流程导航</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="CSS3缩放切换效果焦点图特效" href="/xiazai/js/8612"><span>[图片特效]</span><span>CSS3缩放切换效果焦点图特效</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jQuery+CSS3实现多步注册表单进度条" href="/xiazai/js/8611"><span>[表单按钮]</span><span>jQuery+CSS3实现多步注册表单进度条</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jQuery实现Diy拖拽表单代码" href="/xiazai/js/8610"><span>[表单按钮]</span><span>jQuery实现Diy拖拽表单代码</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="css3鼠标拖拽展示图片特效" href="/xiazai/js/8609"><span>[图片特效]</span><span>css3鼠标拖拽展示图片特效</span></a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" title="jQuery实现汉字转换成拼音代码" href="/xiazai/js/8608"><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/4262" title="萌系卡通唐装小马插画矢量素材"><span>[网站素材]</span><span>萌系卡通唐装小马插画矢量素材</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4261" title="超市购物宣传方形海报PSD源文件设计下载"><span>[网站素材]</span><span>超市购物宣传方形海报PSD源文件设计下载</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4260" title="粉色极简线条派对海报矢量模板"><span>[网站素材]</span><span>粉色极简线条派对海报矢量模板</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4259" title="情人节主题香水价目表PS素材下载"><span>[网站素材]</span><span>情人节主题香水价目表PS素材下载</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4258" title="2026马年蓝金梦幻海报矢量模板"><span>[网站素材]</span><span>2026马年蓝金梦幻海报矢量模板</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4257" title="2026马年可爱卡通插画矢量"><span>[网站素材]</span><span>2026马年可爱卡通插画矢量</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4256" title="2026新年喜庆灯笼矢量模板"><span>[网站素材]</span><span>2026新年喜庆灯笼矢量模板</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4255" title="中式古典园林凉亭风景矢量素材"><span>[网站素材]</span><span>中式古典园林凉亭风景矢量素材</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4254" title="2026马年创意数字矢量素材"><span>[网站素材]</span><span>2026马年创意数字矢量素材</span> </a>
									</div>
								</li>
															<li>
									<div class="wzrfourli flexRow">
										<b></b>
										<a target="_blank" href="/xiazai/sucai/4253" 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="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/1682.html" title="Kotlin 教程">
									<img src="https://img.php.cn/upload/course/000/000/090/689d9fbb63b03751.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="Kotlin 教程" class="ristyAimg"
										onerror="this.src='/static/mobimages/moren/morentu.png'">
								</a>
								<div class="ristyaRight flexColumn">
									<a target="_blank" href="/course/1682.html" title="Kotlin 教程"
										class="rirightp overflowclass">Kotlin 教程</a>

									<div class="risrdown flexRow">
										<p>共23课时 | 2.8万人学习</p>
									</div>
								</div>
							</div>
													<div  class="ristyA flexRow " >
								<a target="_blank" href="/course/1674.html" title="C# 教程">
									<img src="https://img.php.cn/upload/course/000/000/090/6899aecb3a4b8740.jpeg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="C# 教程" class="ristyAimg"
										onerror="this.src='/static/mobimages/moren/morentu.png'">
								</a>
								<div class="ristyaRight flexColumn">
									<a target="_blank" href="/course/1674.html" title="C# 教程"
										class="rirightp overflowclass">C# 教程</a>

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

									<div class="risrdown flexRow">
										<p>共578课时 | 50.3万人学习</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课时 | 10.1万人学习</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.5万人学习</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课时 | 15.3万人学习</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课时 | 10.1万人学习</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="Struts2的结果类型怎么配置为返回XML" href="/faq/2024928.html">Struts2的结果类型怎么配置为返回XML</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Python lxml vs ElementTree 如何在性能和易用性上做选择" href="/faq/2024927.html">Python lxml vs ElementTree 如何在性能和易用性上做选择</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="XLink怎么在XML中创建链接 XLink简单链接与扩展链接教程" href="/faq/2024916.html">XLink怎么在XML中创建链接 XLink简单链接与扩展链接教程</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="PHP的SimpleXML怎么添加一个带命名空间的子节点" href="/faq/2024898.html">PHP的SimpleXML怎么添加一个带命名空间的子节点</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="什么是TMX翻译记忆库交换格式 TMX XML详解" href="/faq/2024872.html">什么是TMX翻译记忆库交换格式 TMX XML详解</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何将XML文件转换为Java对象 JAXB Unmarshalling教程" href="/faq/2024871.html">如何将XML文件转换为Java对象 JAXB Unmarshalling教程</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Burp Suite怎么构造XXE payload" href="/faq/2024859.html">Burp Suite怎么构造XXE payload</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="什么是VoiceXML 语音可扩展标记语言" href="/faq/2024854.html">什么是VoiceXML 语音可扩展标记语言</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="什么是FIXatdl 算法交易定义语言的XML标准" href="/faq/2024831.html">什么是FIXatdl 算法交易定义语言的XML标准</a></div>
													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="WordPress REST API如何自定义端点来接收XML文件" href="/faq/2024827.html">WordPress REST API如何自定义端点来接收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-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=1508892&time=1769244159">
</script>
<script src="/static/ueditor/third-party/SyntaxHighlighter/shCore.js?1769244159"></script>
<script>
	article_status = "1221864";
</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>