0

0

XPath的comment()如何选择注释节点?

煙雲

煙雲

发布时间:2025-08-16 22:16:02

|

903人浏览过

|

来源于php中文网

原创

答案:XPath中comment()函数用于选择注释节点,与text()不同,前者提取内的内容,后者获取元素内的文本;可通过//comment()获取所有注释,或结合轴、谓词和字符串函数精确筛选目标注释。

xpath的comment()如何选择注释节点?

XPath中,

comment()
函数专门用来选择文档中的注释节点。它就像一个过滤器,只把那些被
包裹起来的内容找出来,而忽略元素、属性或文本节点。

解决方案

说实话,处理XML或HTML里的注释节点,XPath的

comment()
函数是个非常直接的工具。它不关心注释里面写了什么,只要是注释,它就能帮你抓出来。

最基础的用法,如果你想获取文档中所有的注释节点,无论它们藏在哪里,直接用

//comment()
就行了。这就像在整个文档里撒网,所有符合“注释”这个条件的,都会被捞上来。



    
        
        内容
    
    

对应上面的XML,

//comment()
会返回三个注释节点。

如果你只想获取特定元素下的注释,那路径就得具体一点。比如,只想找

元素下面的注释,可以写成
/root/element/comment()
。这会只返回“元素内部的注释”那个节点。

有时候,我们不光要找到注释,可能还想看看它里面写了什么。XPath的强大之处在于,找到节点后,你还能对其内容进行判断。虽然

comment()
本身只是选择节点,但你可以通过谓词(
[]
)来进一步筛选。比如,你想找内容包含特定文本的注释,就可以这么写:
//comment()[contains(., '特定文本')]
。这里的
.
代表当前节点(也就是注释节点)的字符串值。

这听起来简单,但在实际操作中,注释的内容往往很随意,可能包含换行符、多余空格,甚至是一些非标准字符。所以,精确匹配有时候会是个小挑战。我的经验是,如果注释内容是人工维护的,那往往不那么规范,需要多尝试几种匹配方式。

如何精确筛选特定内容的注释节点?

要精确筛选特定内容的注释节点,光靠

comment()
本身是不够的,我们需要结合XPath的字符串函数和谓词来做文章。这就像给你的渔网加上了更细的网眼,只捕捞你真正想要的“鱼”。

最常用的方法就是使用

contains()
函数。比如,你有一个注释写着
,你想找到所有包含“用户信息”的注释,可以这样写:
//comment()[contains(., '用户信息')]
。这里的点号
.
代表当前注释节点的内容。

但如果你的注释内容很长,或者有多种变体,比如

,你可能需要更灵活的匹配方式。XPath 2.0及更高版本提供了
matches()
函数,它支持正则表达式,这简直是精确匹配的利器。例如,
//comment()[matches(., '用户(信息|数据)')]
可以匹配包含“用户信息”或“用户数据”的注释。不过,要注意的是,很多老旧的XPath解析器(比如一些浏览器内置的)可能只支持XPath 1.0,那就用不了
matches()
了。

还有一种情况,注释内容可能包含多余的空格或者换行符。例如:

如果你直接用

contains(., '多行注释')
,通常是没问题的,因为XPath在处理字符串值时会把这些空白字符都包含进去。但如果你想匹配一个非常精确的字符串,比如“多行注释”,而注释里实际是“ 多行注释 ”(前面有空格),那你就得小心了。有时候,我会先用
normalize-space()
函数来清理注释内容的空白,再进行匹配,比如
//comment()[contains(normalize-space(.), '多行注释')]
。这样可以避免因为空白字符导致的匹配失败。但也要考虑实际情况,如果注释里故意留白是为了格式,那么
normalize-space()
可能会破坏你的意图。

所以,我的建议是,在编写匹配规则时,先仔细检查目标注释的实际内容,包括其内部的空白和换行符,再选择最合适的函数。

XPath的comment()与文本节点选择有何不同,何时使用它们?

comment()
text()
是XPath中两个非常重要但又截然不同的节点类型函数,它们各自有明确的职责。简单来说,
comment()
是找
这种形式的注释,而
text()
是找元素标签之间或属性值里的纯文本内容。它们俩是“井水不犯河水”的。

皮卡智能
皮卡智能

AI驱动高效视觉设计平台

下载

比如说,你有这样的XML:


    
    这是商品的具体描述。
    100

如果你用

//product/comment()
,你会得到“商品描述”那个注释节点。 但如果你用
//product/text()
,你会得到“这是商品的具体描述。”这部分文本。注意,
text()
只会返回直接子文本节点,像
100
里面的“100”就不是
的直接文本子节点,你需要用
//product/price/text()
才能取到它。

什么时候用哪个呢?这取决于你的目标。

  • 使用

    comment()
    当你需要获取文档中那些不直接参与数据结构、但可能包含元信息、调试信息、版权声明或者其他非结构化备注时。例如,网页抓取时,有些网站会把一些动态加载的URL或者API密钥放在注释里;或者在XML配置文件中,开发者会用注释来解释某个配置项的用途。这时候,
    comment()
    就是你的首选。它帮你把那些“悄悄话”找出来。

  • 使用

    text()
    当你需要提取元素内部的实际数据内容时。这是最常见的用法,比如从网页上抓取文章标题、商品价格、用户评论等。
    text()
    关注的是用户可见或业务逻辑相关的文本信息。

它们最大的不同在于语义和结构角色。注释是对文档的解释或备注,不属于文档的“内容”本身;而文本节点就是文档的“内容”。混淆它们会导致你获取到错误的数据,或者错过重要的信息。我的看法是,理解它们的本质差异,才能在复杂的文档结构中游刃有余地提取所需信息。有时候,一个元素内部既有文本又有注释,比如

一些文本
,你需要分别使用
comment()
text()
来获取它们。

处理复杂或嵌套结构中的注释节点有哪些高级技巧?

处理复杂或嵌套结构中的注释节点,不仅仅是找到它们,更重要的是理解它们与周围元素的相对位置和上下文关系。这就像在地图上找一个地标,不光要知道地标的名字,还要知道它在哪个街区,旁边有什么建筑物。

一个常见场景是,你可能想找到某个特定元素“前面”或者“后面”的注释。XPath提供了轴(axes)来描述节点之间的关系。

  • preceding-sibling::comment()
    查找当前节点之前的所有同级注释节点。比如,你想找到一个
    </pre>元素前面紧挨着的注释,可以这样写:<pre class="brush:php;toolbar:false;">//title/preceding-sibling::comment()[1]</pre>(<pre class="brush:php;toolbar:false;">[1]</pre>表示取最近的那个)。</p></li>
    <li><p><strong><pre class="brush:php;toolbar:false;">following-sibling::comment()</pre>:</strong> 查找当前节点之后的所有同级注释节点。类似地,<pre class="brush:php;toolbar:false;">//title/following-sibling::comment()[1]</pre>会找到紧跟在<pre class="brush:php;toolbar:false;"><title></pre>后面的注释。</p></li>
    </ul>
    <p>这在处理一些前端框架生成的HTML时特别有用,它们可能在组件的开始或结束位置插入注释,用于调试或标记。</p>
    <p>再复杂一点,如果注释不在同级,而是在某个祖先或后代中,但你又想根据某个特定的元素来定位它,那就要结合路径和谓词了。例如,你想找到所有包含“重要”字样的注释,但这些注释必须是某个<pre class="brush:php;toolbar:false;"><section id="main"></pre>元素内部的,不论它嵌套多深:
    <pre class="brush:php;toolbar:false;">//section[@id="main"]//comment()[contains(., '重要')]</pre>。这里<pre class="brush:php;toolbar:false;">//</pre>表示“任意后代”,它能穿透多层嵌套。</p>
    <p>有时候,注释可能作为某个元素的第一个或最后一个子节点出现。你可以用<pre class="brush:php;toolbar:false;">*[1]</pre>或<pre class="brush:php;toolbar:false;">last()</pre>这样的位置谓词来定位:
    <pre class="brush:php;toolbar:false;">//div/comment()[1]</pre>:获取<pre class="brush:php;toolbar:false;">div</pre>下的第一个子注释节点。
    <pre class="brush:php;toolbar:false;">//div/comment()[last()]</pre>:获取<pre class="brush:php;toolbar:false;">div</pre>下的最后一个子注释节点。</p>
    <p>另一个比较有意思的场景是,注释本身可能包含一些看起来像路径或者ID的信息。比如:<pre class="brush:php;toolbar:false;"><!-- related-to: product-id-123 --></pre>。你可以提取这个“product-id-123”然后用它来做进一步的查询。这通常涉及到在XPath结果上进行字符串处理,或者在XPath 2.0+中使用更复杂的正则匹配来提取子串。</p>
    <p>我的经验告诉我,处理这些“隐藏”在注释里的信息,关键在于灵活运用XPath的轴、谓词和字符串函数。它们能让你像外科医生一样精准地定位和提取信息,即使这些信息被包裹在看似无关的注释里。但切记,注释的内容结构往往不规范,所以你的XPath表达式可能需要比处理标准元素内容时更具容错性。</p>					</div>
    					<div class="artmoreart ">
    													<div class="artdp artptit"><span></span>
    								<p>相关文章</p>
    							</div>
    							<div class="artmores flexColumn">
    																	<a class="artmrlis flexRow" href="/faq/2000735.html" title="在浏览器中使用WebAssembly快速解析上传的XML"><b></b>
    										<p class="overflowclass">在浏览器中使用WebAssembly快速解析上传的XML</p>
    									</a>
    																	<a class="artmrlis flexRow" href="/faq/1997211.html" title="JavaScript如何通过AJAX请求XML AJAX获取XML数据方法"><b></b>
    										<p class="overflowclass">JavaScript如何通过AJAX请求XML AJAX获取XML数据方法</p>
    									</a>
    																	<a class="artmrlis flexRow" href="/faq/1996090.html" title="在浏览器中调试XSLT转换的方法"><b></b>
    										<p class="overflowclass">在浏览器中调试XSLT转换的方法</p>
    									</a>
    																	<a class="artmrlis flexRow" href="/faq/1982026.html" title="XML数据岛是什么 如何在HTML页面中嵌入XML数据"><b></b>
    										<p class="overflowclass">XML数据岛是什么 如何在HTML页面中嵌入XML数据</p>
    									</a>
    																	<a class="artmrlis flexRow" href="/faq/1977644.html" title="XPath怎么选择第一个、第二个或第n个子节点"><b></b>
    										<p class="overflowclass">XPath怎么选择第一个、第二个或第n个子节点</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/16180.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/17539.html" target="_blank">ai</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=html" target="_blank">html</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=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>								</div>
    							</div>
    						
    						<p class="statement">本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn</p>
    						<div class="lastanext flexRow">
    													<a class="lastart flexRow" href="/faq/1459026.html" title="XPath的self轴代表什么?如何使用?"><span>上一篇:</span>XPath的self轴代表什么?如何使用?</a>
    													<a class="nextart flexRow" href="/faq/1459164.html" title="XPath的current()函数代表什么上下文?"><span>下一篇:</span>XPath的current()函数代表什么上下文?</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/2018469.html" title="拼多多PC端登录 官方网页版购物入口"><b></b>
    												<p class="overflowclass">拼多多PC端登录 官方网页版购物入口</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 17:49</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/2018524.html" title="Edge浏览器怎么截图 Edge浏览器自带截图功能使用方法【高效】"><b></b>
    												<p class="overflowclass">Edge浏览器怎么截图 Edge浏览器自带截图功能使用方法【高效】</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 18:03</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/2018566.html" title="如何用AI进行深度伪造(Deepfake)检测?识别虚假信息的方法"><b></b>
    												<p class="overflowclass">如何用AI进行深度伪造(Deepfake)检测?识别虚假信息的方法</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 18:11</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/2018869.html" title="火狐浏览器下载速度慢怎么办 提升Firefox下载速度技巧【优化】"><b></b>
    												<p class="overflowclass">火狐浏览器下载速度慢怎么办 提升Firefox下载速度技巧【优化】</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 19:09</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/2018927.html" title="AI换装模型怎么用?电商必备的虚拟模特生成教程"><b></b>
    												<p class="overflowclass">AI换装模型怎么用?电商必备的虚拟模特生成教程</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 19:19</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/2018929.html" title="Edge浏览器怎么清除自动填充表单数据 Edge表单数据管理【隐私】"><b></b>
    												<p class="overflowclass">Edge浏览器怎么清除自动填充表单数据 Edge表单数据管理【隐私】</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 19:19</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/2018961.html" title="云朵浏览器官方唯一指定入口 云朵浏览器正版官网入口"><b></b>
    												<p class="overflowclass">云朵浏览器官方唯一指定入口 云朵浏览器正版官网入口</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 19:27</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/2018967.html" title="谷歌浏览器如何管理网站权限 Chrome相机麦克风位置权限设置【隐私】"><b></b>
    												<p class="overflowclass">谷歌浏览器如何管理网站权限 Chrome相机麦克风位置权限设置【隐私】</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 19:28</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/2019022.html" title="Windows怎么清理回收站垃圾 Win10/Win11设置自动清理回收站方法"><b></b>
    												<p class="overflowclass">Windows怎么清理回收站垃圾 Win10/Win11设置自动清理回收站方法</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 19:40</p>
    											</div>
    										</div>
    								</div>
    																	<div class="authlist flexColumn">
    										<div class="autharts flexRow">
    											<a class="autharta flexRow " href="/faq/2019139.html" title="Python多线程调用同一个函数_Python多线程共享函数调用安全方法"><b></b>
    												<p class="overflowclass">Python多线程调用同一个函数_Python多线程共享函数调用安全方法</p>
    											</a>
    											<div class="authtime flexRow"><b></b>
    												<p>2026-01-22 20:03</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/jszzbds" class="aClass flexRow hotzta" title="js正则表达式"><img
    										src="https://img.php.cn/upload/subject/202306/20/2023062016540737551.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="js正则表达式" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/jszzbds" class="aClass flexRow hotztra overflowclass" title="js正则表达式">js正则表达式</a>
    									<p class="aClass flexRow hotztrp overflowclass">php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">510</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.06.20</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/zzbdsbbh" class="aClass flexRow hotzta" title="正则表达式不包含"><img
    										src="https://img.php.cn/upload/subject/202307/05/2023070510532561954.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="正则表达式不包含" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/zzbdsbbh" class="aClass flexRow hotztra overflowclass" title="正则表达式不包含">正则表达式不包含</a>
    									<p class="aClass flexRow hotztrp overflowclass">正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">249</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/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="">742</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/javazzbdspp" class="aClass flexRow hotzta" title="java正则表达式匹配字符串"><img
    										src="https://img.php.cn/upload/subject/202308/11/2023081111201555549.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/javazzbdspp" 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="">213</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.08.11</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/zzbdskg" class="aClass flexRow hotzta" title="正则表达式空格"><img
    										src="https://img.php.cn/upload/subject/202308/31/2023083111550666480.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="正则表达式空格" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/zzbdskg" class="aClass flexRow hotztra overflowclass" title="正则表达式空格">正则表达式空格</a>
    									<p class="aClass flexRow hotztrp overflowclass">正则表达式空格可以用“s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">351</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.08.31</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/Pythonpchqsj" class="aClass flexRow hotzta" title="Python爬虫获取数据的方法"><img
    										src="https://img.php.cn/upload/subject/202311/13/2023111310482166160.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/Pythonpchqsj" class="aClass flexRow hotztra overflowclass" title="Python爬虫获取数据的方法">Python爬虫获取数据的方法</a>
    									<p class="aClass flexRow hotztrp overflowclass">Python爬虫可以通过请求库发送HTTP请求、解析库解析HTML、正则表达式提取数据,或使用数据抓取框架来获取数据。更多关于Python爬虫相关知识。详情阅读本专题下面的文章。php中文网欢迎大家前来学习。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">293</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.11.13</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/zzbdskgbs" class="aClass flexRow hotzta" title="正则表达式空格如何表示"><img
    										src="https://img.php.cn/upload/subject/202311/17/2023111713272920166.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="正则表达式空格如何表示" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/zzbdskgbs" class="aClass flexRow hotztra overflowclass" title="正则表达式空格如何表示">正则表达式空格如何表示</a>
    									<p class="aClass flexRow hotztrp overflowclass">正则表达式空格可以用“s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。想了解更多正则表达式空格怎么表示的内容,可以访问下面的文章。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">234</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.11.17</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/zzbdszrhppsz" class="aClass flexRow hotzta" title="正则表达式中如何匹配数字"><img
    										src="https://img.php.cn/upload/subject/202312/06/2023120613191795827.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="正则表达式中如何匹配数字" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/zzbdszrhppsz" class="aClass flexRow hotztra overflowclass" title="正则表达式中如何匹配数字">正则表达式中如何匹配数字</a>
    									<p class="aClass flexRow hotztrp overflowclass">正则表达式中可以通过匹配单个数字、匹配多个数字、匹配固定长度的数字、匹配整数和小数、匹配负数和匹配科学计数法表示的数字的方法匹配数字。更多关于正则表达式的相关知识详情请看本专题下面的文章。php中文网欢迎大家前来学习。</p>
    									<div class="hotztrdown flexRow">
    										<div class="htztdsee flexRow"> <b></b>
    											<p class="">528</p>
    										</div>
    										<div class="htztdTime flexRow"> <b></b>
    											<p>2023.12.06</p>
    										</div>
    									</div>
    								</div>
    							</div>
    													<div class="hotztlls flexRow">
    								<a target="_blank" href="/faq/cnggrkyjjchz" class="aClass flexRow hotzta" title="菜鸟裹裹入口以及教程汇总"><img
    										src="https://img.php.cn/upload/subject/202601/22/2026012220395931491.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="菜鸟裹裹入口以及教程汇总" class="hotztaimg"
    										onerror="this.src='/static/lhimages/moren/morentu.png'"></a>
    								<div class="hotztright flexColumn">
    									<a target="_blank" href="/faq/cnggrkyjjchz" class="aClass flexRow hotztra overflowclass" title="菜鸟裹裹入口以及教程汇总">菜鸟裹裹入口以及教程汇总</a>
    									<p class="aClass flexRow hotztrp overflowclass">本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。</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.22</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="简单的注册表单必填代码" href="/xiazai/js/8585"><span>[表单按钮]</span><span>简单的注册表单必填代码</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jQuery图片抖动滑块切换" href="/xiazai/js/8584"><span>[图片特效]</span><span>jQuery图片抖动滑块切换</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jQuery星级评论表单美化代码" href="/xiazai/js/8583"><span>[表单按钮]</span><span>jQuery星级评论表单美化代码</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="五种切换效果的jQuery幻灯片" href="/xiazai/js/8582"><span>[图片特效]</span><span>五种切换效果的jQuery幻灯片</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jQuery垂直传送带图片切换" href="/xiazai/js/8581"><span>[图片特效]</span><span>jQuery垂直传送带图片切换</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jQuery手机注册表单获取验证码代码" href="/xiazai/js/8580"><span>[表单按钮]</span><span>jQuery手机注册表单获取验证码代码</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jQuery空格键添加a标签" href="/xiazai/js/8579"><span>[表单按钮]</span><span>jQuery空格键添加a标签</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jQuery创意输入框表单提交特效" href="/xiazai/js/8578"><span>[表单按钮]</span><span>jQuery创意输入框表单提交特效</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jQuery图片查看器代码" href="/xiazai/js/8577"><span>[图片特效]</span><span>jQuery图片查看器代码</span></a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" title="jQuery图片自动轮播切换展示特效" href="/xiazai/js/8576"><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/4245" title="2026新春鞭炮烟花背景矢量素材"><span>[网站素材]</span><span>2026新春鞭炮烟花背景矢量素材</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4244" title="波西米亚抽象装饰画矢量素材"><span>[网站素材]</span><span>波西米亚抽象装饰画矢量素材</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4243" title="新春剪纸梅花窗花装饰矢量素材"><span>[网站素材]</span><span>新春剪纸梅花窗花装饰矢量素材</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4242" title="复古风格水果海报合集矢量模板"><span>[网站素材]</span><span>复古风格水果海报合集矢量模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4241" title="黑色风格黑色星期五宣传海报设计下载"><span>[网站素材]</span><span>黑色风格黑色星期五宣传海报设计下载</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4240" title="2026马年新春祥云灯笼矢量素材"><span>[网站素材]</span><span>2026马年新春祥云灯笼矢量素材</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4239" title="特价飞机旅行预定海报PSD素材下载"><span>[网站素材]</span><span>特价飞机旅行预定海报PSD素材下载</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4238" title="航空旅行折扣海报PSD源文件设计下载"><span>[网站素材]</span><span>航空旅行折扣海报PSD源文件设计下载</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4237" title="怀旧黑胶音乐海报合集矢量模板"><span>[网站素材]</span><span>怀旧黑胶音乐海报合集矢量模板</span> </a>
    									</div>
    								</li>
    															<li>
    									<div class="wzrfourli flexRow">
    										<b></b>
    										<a target="_blank" href="/xiazai/sucai/4236" 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/1469.html" title="如何进行WebSocket调试">
    									<img src="https://img.php.cn/upload/course/000/000/068/6336a89e9a7b3503.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="如何进行WebSocket调试" class="ristyAimg"
    										onerror="this.src='/static/mobimages/moren/morentu.png'">
    								</a>
    								<div class="ristyaRight flexColumn">
    									<a target="_blank" href="/course/1469.html" title="如何进行WebSocket调试"
    										class="rirightp overflowclass">如何进行WebSocket调试</a>
    
    									<div class="risrdown flexRow">
    										<p>共1课时 | 0.1万人学习</p>
    									</div>
    								</div>
    							</div>
    													<div  class="ristyA flexRow " >
    								<a target="_blank" href="/course/1426.html" title="TypeScript全面解读课程">
    									<img src="https://img.php.cn/upload/course/000/000/068/629723b6eb410512.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="TypeScript全面解读课程" class="ristyAimg"
    										onerror="this.src='/static/mobimages/moren/morentu.png'">
    								</a>
    								<div class="ristyaRight flexColumn">
    									<a target="_blank" href="/course/1426.html" title="TypeScript全面解读课程"
    										class="rirightp overflowclass">TypeScript全面解读课程</a>
    
    									<div class="risrdown flexRow">
    										<p>共26课时 | 5万人学习</p>
    									</div>
    								</div>
    							</div>
    													<div  class="ristyA flexRow " >
    								<a target="_blank" href="/course/1414.html" title="前端工程化(ES6模块化和webpack打包)">
    									<img src="https://img.php.cn/upload/course/000/000/068/627377d7a6130350.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="前端工程化(ES6模块化和webpack打包)" class="ristyAimg"
    										onerror="this.src='/static/mobimages/moren/morentu.png'">
    								</a>
    								<div class="ristyaRight flexColumn">
    									<a target="_blank" href="/course/1414.html" title="前端工程化(ES6模块化和webpack打包)"
    										class="rirightp overflowclass">前端工程化(ES6模块化和webpack打包)</a>
    
    									<div class="risrdown flexRow">
    										<p>共24课时 | 5.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课时 | 9.7万人学习</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.4万人学习</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课时 | 13.2万人学习</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课时 | 9.7万人学习</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="Google Cloud Deployment Manager如何配置XML处理服务" href="/faq/2015828.html">Google Cloud Deployment Manager如何配置XML处理服务</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Python如何递归遍历XML树的所有节点" href="/faq/2015819.html">Python如何递归遍历XML树的所有节点</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="BizTalk中的Envelope和Debatching如何处理XML" href="/faq/2015816.html">BizTalk中的Envelope和Debatching如何处理XML</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="JavaScript中XMLHttpRequest对象怎么处理XML响应" href="/faq/2015809.html">JavaScript中XMLHttpRequest对象怎么处理XML响应</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="XML上传时的超时问题如何解决 如何调整服务器和客户端超时设置" href="/faq/2015662.html">XML上传时的超时问题如何解决 如何调整服务器和客户端超时设置</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="C# LINQ to XML怎么选择指定命名空间下的所有元素" href="/faq/2015635.html">C# LINQ to XML怎么选择指定命名空间下的所有元素</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="React Native如何上传XML文件 fetch和FormData的使用" href="/faq/2015585.html">React Native如何上传XML文件 fetch和FormData的使用</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="XML文件上传的版本控制策略 如何处理不同格式的XML" href="/faq/2015527.html">XML文件上传的版本控制策略 如何处理不同格式的XML</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="JS怎么遍历XML节点 JavaScript XML DOM遍历方法" href="/faq/2015506.html">JS怎么遍历XML节点 JavaScript XML DOM遍历方法</a></div>
    													<div class="xgwzlid flexRow"><b></b><a target="_blank" title="Ansible的xml模块怎么用 自动化修改XML" href="/faq/2015500.html">Ansible的xml模块怎么用 自动化修改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=1459131&time=1769093782">
    </script>
    <script src="/static/ueditor/third-party/SyntaxHighlighter/shCore.js?1769093782"></script>
    <script>
    	article_status = "1522180";
    </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>