0

0

Python怎么解析HTML_Python HTML解析方法与库介绍

冰火之心

冰火之心

发布时间:2025-09-13 14:57:01

|

509人浏览过

|

来源于php中文网

原创

Python解析HTML首选Beautiful Soup和lxml,不推荐正则表达式。首先用requests获取HTML内容,再用Beautiful Soup或lxml解析为结构化对象树。Beautiful Soup容错性强、API直观,适合处理不规范HTML;lxml基于C库,速度快,支持XPath,适合大规模或高性能需求场景。通过find、select或xpath等方法定位元素,提取文本或属性数据,实现高效信息抓取。

python怎么解析html_python html解析方法与库介绍

Python解析HTML,说白了,就是把那些浏览器能看懂的标记语言,通过代码的方式,结构化地提取出我们想要的数据。核心工具无非就是那几个:Beautiful Soup、lxml,偶尔也会用到一些更轻量级的方案,它们能把一堆文本变成一个可操作的对象树,方便我们定位和抽取信息。

解决方案

要用Python解析HTML,我们通常会遵循一套比较成熟的流程。首先,你需要获取HTML内容,这通常通过

requests
库来完成,它能模拟浏览器发送HTTP请求,把网页的原始HTML文本抓下来。拿到文本后,下一步就是选择一个合适的解析库进行处理。

最常用的,也是我个人觉得上手最快、最友好的,是Beautiful Soup。它能够处理各种“不规范”的HTML文档,即使网页代码写得一塌糊涂,它也能尽力帮你构建一个可用的解析树。使用起来很简单:

  1. 导入库
    from bs4 import BeautifulSoup
  2. 创建解析器对象
    soup = BeautifulSoup(html_doc, 'html.parser')
    这里的
    html_doc
    就是你获取到的HTML字符串,
    'html.parser'
    是Python内置的解析器,你也可以选择更快的
    'lxml'
    'html5lib'
  3. 查找元素:你可以通过标签名、属性、CSS选择器等多种方式来定位元素。
    • 按标签名:
      soup.title
      soup.find('div')
      soup.find_all('a')
    • 按属性:
      soup.find(id='main-content')
      soup.find_all('p', class_='intro')
    • 按CSS选择器:
      soup.select('.container > p')
  4. 提取数据:拿到元素后,你可以提取它的文本内容(
    .text
    .get_text()
    ),或者获取属性值(
    ['href']
    .get('src')
    )。

如果对性能有更高要求,或者处理的HTML文档结构相对规范,lxml会是另一个非常强大的选择。它底层用C语言实现,速度非常快,并且支持XPath和CSS选择器,对于熟悉XML/XPath的人来说,用起来会非常顺手。

立即学习Python免费学习笔记(深入)”;

无论选择哪个库,核心思想都是一样的:把无序的HTML文本变成有序的数据结构,然后通过遍历、查找、匹配等操作,把我们感兴趣的数据“挖”出来。这听起来有点像寻宝,而解析库就是我们的地图和铲子。

Python解析HTML,为什么不推荐使用正则表达式

坦白说,每次看到有人想用正则表达式(Regex)去解析HTML,我心里都会“咯噔”一下。这几乎是社区里一个老生常谈的“禁忌”了。原因很简单,HTML不是一种“正则语言”,它的结构太复杂、太灵活,充满了嵌套、可选属性、不规范的写法,这些特性让正则表达式力不从心。

想象一下,你要用正则匹配一个

标签里的内容。如果这个
里面又嵌套了十几个
,甚至还有各种
,你的正则表达式就会变得异常复杂,难以阅读和维护。一个小小的HTML结构变化,比如加了一个属性,或者标签嵌套层级变了,你的正则可能就完全失效了。这简直是给自己挖坑。

我记得有一次,我同事为了一个简单的任务,尝试用正则去提取一个HTML表格里的数据。结果他写了一个长达几十行的正则表达式,里面充满了非捕获组、零宽断言之类的“黑魔法”。但凡表格里多一个空行,或者某个单元格里多了一个

,整个正则就崩了。最后他还是老老实实地换了Beautiful Soup。

所以,我的建议是,除非你处理的HTML是极其简单、固定、可控的,比如只有一行且没有嵌套的特定模式,否则请远离正则表达式。它在处理结构化文本时确实强大,但在面对HTML这种半结构化的、充满不确定性的语言时,简直是自讨苦吃。用专业的HTML解析器,不仅效率更高,代码也更健壮、更易于维护。

Beautiful Soup:Python HTML解析的“瑞士军刀”如何使用?

Beautiful Soup在我看来,简直是Python HTML解析界的“瑞士军刀”。它的强大之处在于,它不仅能处理规范的HTML,对于那些残缺不全、标签错乱的“烂泥巴”HTML,它也能尽力帮你整理成一棵可以操作的树。这对于我们经常要面对的真实世界网页来说,简直是福音。

我们来实际操作一下,看看这把“瑞士军刀”怎么用:

RecoveryFox AI
RecoveryFox AI

AI驱动的数据恢复、文件恢复工具

下载
from bs4 import BeautifulSoup
import requests

# 假设我们从一个网页获取了HTML内容
# 实际项目中,你会用 requests.get('url').text 来获取
html_doc = """



    我的个人博客


    

    

最新文章

更多精彩内容,敬请期待!

""" # 创建BeautifulSoup对象,指定解析器 # 'html.parser' 是Python内置的,比较通用 # 'lxml' 或 'html5lib' 也可以,它们各有特点,lxml更快,html5lib更容错 soup = BeautifulSoup(html_doc, 'html.parser') # 1. 获取页面的标题 title = soup.title print(f"页面标题: {title.string}") # 输出:页面标题: 我的个人博客 # 2. 查找第一个h1标签的内容 h1_tag = soup.find('h1') print(f"H1内容: {h1_tag.text}") # 输出:H1内容: 欢迎来到我的博客 # 3. 查找所有文章列表中的链接及其文本和href属性 print("\n所有文章链接:") article_links = soup.find_all('a') # 找到所有标签 for link in article_links: # 排除footer里的链接(如果存在) if link.parent.name == 'li': # 确保是文章列表里的链接 print(f"- 标题: {link.text}, 链接: {link['href']}, 分类: {link.get('data-category')}") # 输出: # - 标题: Python HTML解析指南, 链接: /articles/python-html-parsing, 分类: 技术 # - 标题: 旅行日记:探索未知, 链接: /articles/my-travel-diary, 分类: 生活 # - 标题: 书评:如何阅读一本书, 链接: /articles/book-review, 分类: 阅读 # 4. 使用CSS选择器查找特定元素 # 查找所有class为'article-list'的ul下的li标签 featured_article = soup.select_one('ul.article-list li.featured a') if featured_article: print(f"\n精选文章标题 (CSS选择器): {featured_article.text}") # 输出:精选文章标题 (CSS选择器): Python HTML解析指南 # 5. 获取某个元素的属性值 slogan_paragraph = soup.find('p', class_='slogan') if slogan_paragraph: print(f"Slogan段落的class属性: {slogan_paragraph.get('class')}") # 输出:Slogan段落的class属性: ['slogan']

从上面的例子可以看出,Beautiful Soup的API设计非常直观,

.find()
.find_all()
用于按标签名或属性查找,
.select()
.select_one()
则支持强大的CSS选择器,让你能像写CSS样式一样定位元素。它还能自动处理字符编码问题,并且对错误的HTML有很强的容错性。这对于我们日常的网页数据抓取工作来说,简直是不可或缺的利器。

lxml:追求极致性能时,Python HTML解析的另一选择?

当我们谈到Python的HTML解析,Beautiful Soup无疑是明星选手,但如果你的项目对解析速度有近乎苛刻的要求,或者需要处理超大规模的HTML文件,那么lxml绝对是你需要认真考虑的另一个选择。它不像Beautiful Soup那样“温柔”,但它的速度和对XPath的完美支持,让它在某些场景下显得无可替代。

lxml实际上是libxml2和libxslt这两个C库的Python绑定,这意味着它在执行解析任务时,大部分工作都在底层以C语言的速度完成,这自然带来了显著的性能提升。对于我个人经验而言,当处理几十万甚至上百万行HTML文本时,lxml的速度优势会非常明显。

我们来看一个lxml的简单例子,感受一下它的风格:

from lxml import etree
import requests

# 同样使用之前的HTML内容
html_doc = """



    我的个人博客


    

    

最新文章

更多精彩内容,敬请期待!

""" # 使用etree.HTML()来解析HTML字符串 # 注意:lxml对HTML的规范性要求更高,如果HTML结构很糟糕,可能需要更复杂的处理 tree = etree.HTML(html_doc) # 1. 使用XPath获取页面标题 # XPath路径://title/text() 表示查找所有标签下的文本内容 title_xpath = tree.xpath('//title/text()') if title_xpath: print(f"页面标题 (XPath): {title_xpath[0]}") # 输出:页面标题 (XPath): 我的个人博客 # 2. 使用XPath获取所有文章链接的标题和href属性 print("\n所有文章链接 (XPath):") # XPath路径://ul[@class="article-list"]/li/a 表示查找class为"article-list"的ul下的所有li下的a标签 article_elements = tree.xpath('//ul[@class="article-list"]/li/a') for element in article_elements: title_text = element.text # 获取标签的文本内容 link_href = element.get('href') # 获取href属性 category = element.get('data-category') # 获取data-category属性 print(f"- 标题: {title_text}, 链接: {link_href}, 分类: {category}") # 输出: # - 标题: Python HTML解析指南, 链接: /articles/python-html-parsing, 分类: 技术 # - 标题: 旅行日记:探索未知, 链接: /articles/my-travel-diary, 分类: 生活 # - 标题: 书评:如何阅读一本书, 链接: /articles/book-review, 分类: 阅读 # 3. 获取slogan段落的文本内容 # XPath路径://p[@class="slogan"]/text() slogan_text = tree.xpath('//p[@class="slogan"]/text()') if slogan_text: print(f"\nSlogan内容 (XPath): {slogan_text[0]}") # 输出:Slogan内容 (XPath): 记录生活,分享技术 # 4. lxml也可以通过cssselect库支持CSS选择器 # 需要额外安装:pip install cssselect from lxml.cssselect import CSSSelector sel = CSSSelector('ul.article-list li.featured a') featured_article_lxml = sel(tree) # 返回一个列表 if featured_article_lxml: print(f"\n精选文章标题 (CSS选择器 via lxml): {featured_article_lxml[0].text}") # 输出:精选文章标题 (CSS选择器 via lxml): Python HTML解析指南</pre><p>lxml的API相对来说更“底层”一些,它的<pre class="brush:php;toolbar:false;">xpath()</pre>方法是其核心优势之一。如果你对XPath语法比较熟悉,那么lxml的效率和表达力会让你印象深刻。XPath是一种强大的查询语言,能够非常精确地定位XML/HTML文档中的任何部分。当然,如果你更习惯CSS选择器,<pre class="brush:php;toolbar:false;">cssselect</pre>库也能很好地与lxml配合使用。</p> <p>在我看来,选择lxml还是Beautiful Soup,更多取决于你的具体需求。如果你需要快速原型开发、处理各种“脏数据”,或者对学习成本比较敏感,Beautiful Soup是首选。但如果你的项目规模庞大,对性能有硬性要求,并且能够接受稍微陡峭一点的学习曲线(主要是XPath),那么lxml的加入会让你的解析效率如虎添翼。很多时候,我甚至会把它们结合起来使用,比如用lxml进行快速的初步解析,然后用Beautiful Soup处理一些更复杂的、需要容错的局部细节。</p> </div> <div class="artmoreart "> <div class="artdp artptit"><span></span> <p>相关文章</p> </div> <div class="artmores flexColumn"> <a class="artmrlis flexRow" href="/faq/2041499.html" title="Python 正则回溯导致性能问题的分析"><b></b> <p class="overflowclass">Python 正则回溯导致性能问题的分析</p> </a> <a class="artmrlis flexRow" href="/faq/2041483.html" title="Python 命令行参数解析的多种实现方式"><b></b> <p class="overflowclass">Python 命令行参数解析的多种实现方式</p> </a> <a class="artmrlis flexRow" href="/faq/2041465.html" title="Python 内存占用持续增长的治理方案"><b></b> <p class="overflowclass">Python 内存占用持续增长的治理方案</p> </a> <a class="artmrlis flexRow" href="/faq/2041447.html" title="Python 函数注解在实际项目中的价值"><b></b> <p class="overflowclass">Python 函数注解在实际项目中的价值</p> </a> <a class="artmrlis flexRow" href="/faq/2041439.html" title="如何在 Python 数据类继承中为父类必填字段设置子类默认值"><b></b> <p class="overflowclass">如何在 Python 数据类继承中为父类必填字段设置子类默认值</p> </a> </div> <div class="aritcle_card flexRow"> <div class="artcardd flexRow"> <a class="aritcle_card_img" href="https://pan.quark.cn/s/f4eedefabd61" title="HTML速学教程(入门课程)"><img src="https://img.php.cn/upload/Recdownload/000/000/085/66723a3016a41308.jpg" alt="HTML速学教程(入门课程)"></a> <div class="aritcle_card_info flexColumn"> <a href="https://pan.quark.cn/s/f4eedefabd61" title="HTML速学教程(入门课程)">HTML速学教程(入门课程)</a> <p>HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!</p> </div> <a href="https://pan.quark.cn/s/f4eedefabd61" title="HTML速学教程(入门课程)" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> <div class="artmoretabs flexRow"> <p>相关标签:</p> <div class="mtbs flexRow"> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15730.html" target="_blank">python</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15716.html" target="_blank">css</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15763.html" target="_blank">html</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15863.html" target="_blank">go</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15947.html" target="_blank">正则表达式</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/15948.html" target="_blank">html5</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/16010.html" target="_blank">c语言</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/zt/16180.html" target="_blank">浏览器</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/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="/zt/31874.html" target="_blank">xml解析</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=c语言" target="_blank">c语言</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=beautifulsoup" target="_blank">beautifulsoup</a> <a class="mtbsa flexRow" onclick="hits_log(2,'www',this);" href-data="/search?q=select" target="_blank">select</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=Regex" target="_blank">Regex</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=href" target="_blank">href</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=http" target="_blank">http</a> </div> </div> <p class="statement">本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn</p> <div class="lastanext flexRow"> <a class="lastart flexRow" href="/faq/1516318.html" title="python中如何使用for循环_Python for循环使用方法详解"><span>上一篇:</span>python中如何使用for循环_Python for循环使用方法详解</a> <a class="nextart flexRow" href="/faq/1516346.html" title="Pandas中从混合字符串列提取数字并进行聚合的教程"><span>下一篇:</span>Pandas中从混合字符串列提取数字并进行聚合的教程</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/2031133.html" title="Mac怎么关闭通知弹窗 Mac设置勿扰模式屏蔽消息提醒【干货】"><b></b> <p class="overflowclass">Mac怎么关闭通知弹窗 Mac设置勿扰模式屏蔽消息提醒【干货】</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 08:59</p> </div> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow " href="/faq/2031145.html" title="oppo云服务网页版官方 oppo云服务登录入口手机版"><b></b> <p class="overflowclass">oppo云服务网页版官方 oppo云服务登录入口手机版</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 09:03</p> </div> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow " href="/faq/2031152.html" title="sublime如何查看当前文件的字符数_sublime字数统计插件用法【详解】"><b></b> <p class="overflowclass">sublime如何查看当前文件的字符数_sublime字数统计插件用法【详解】</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 09:07</p> </div> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow " href="/faq/2031162.html" title="云崩坏星穹铁道官网入口 网页版在线游戏地址"><b></b> <p class="overflowclass">云崩坏星穹铁道官网入口 网页版在线游戏地址</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 09:11</p> </div> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow " href="/faq/2031203.html" title="必访阅读app如何调节字体大小 必访app阅读界面个性化设置【必学】"><b></b> <p class="overflowclass">必访阅读app如何调节字体大小 必访app阅读界面个性化设置【必学】</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 09:21</p> </div> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow " href="/faq/2031208.html" title="好分数教师版官网登录入口 好分数网页版网址"><b></b> <p class="overflowclass">好分数教师版官网登录入口 好分数网页版网址</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 09:23</p> </div> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow " href="/faq/2031273.html" title="Win11怎么关闭游戏录制 Win11禁用后台录制功能【性能】"><b></b> <p class="overflowclass">Win11怎么关闭游戏录制 Win11禁用后台录制功能【性能】</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 09:40</p> </div> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow " href="/faq/2031280.html" title="C++ 怎么检测内存泄漏 C++ CRT库与Valgrind工具介绍【工具】"><b></b> <p class="overflowclass">C++ 怎么检测内存泄漏 C++ CRT库与Valgrind工具介绍【工具】</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 09:41</p> </div> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow " href="/faq/2031310.html" title="Win11怎么查看BIOS Win11查询主板固件版本【固件】"><b></b> <p class="overflowclass">Win11怎么查看BIOS Win11查询主板固件版本【固件】</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 09:48</p> </div> </div> </div> <div class="authlist flexColumn"> <div class="autharts flexRow"> <a class="autharta flexRow " href="/faq/2031313.html" title="iphone录屏没有声音怎么办_苹果手机录屏音轨设置技巧【避坑】"><b></b> <p class="overflowclass">iphone录屏没有声音怎么办_苹果手机录屏音轨设置技巧【避坑】</p> </a> <div class="authtime flexRow"><b></b> <p>2026-01-26 09:49</p> </div> </div> </div> </div> <div class="moreAi "> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>热门AI工具</p> </div> <a target="_blank" class="rititle-more flexRow" href="/ai" title="热门AI工具"><span>更多</span><b></b></a> </div> <div class="moreailist flexRow"> <div class="aidcons flexRow "> <div class="aibtns flexRow"> <a target="_blank" href="/ai/723" title="DeepSeek" class="aibtnsa flexRow" > <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679963982777.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="DeepSeek" class="aibtnimg" onerror="this.src='/static/lhimages/moren/morentu.png'"> </a> <div class="aibtn-right flexColumn"> <a target="_blank" href="/ai/723" title="DeepSeek" class="overflowclass abripone">DeepSeek</a> <p class="overflowclass abriptwo">幻方量化公司旗下的开源大模型平台</p> <div class="aidconstab flexRow"> <a class="aidcontbp flexRow flexcenter" href="/ai/tag/code" target="_blank">AI 编程开发</a><a class="aidcontbp flexRow flexcenter" href="/ai/tag/chat" target="_blank">AI 聊天问答</a> </div> </div> </div> </div> <div class="aidcons flexRow "> <div class="aibtns flexRow"> <a target="_blank" href="/ai/726" title="豆包大模型" class="aibtnsa flexRow" > <img src="https://img.php.cn/upload/ai_manual/000/000/000/175680204067325.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="豆包大模型" class="aibtnimg" onerror="this.src='/static/lhimages/moren/morentu.png'"> </a> <div class="aibtn-right flexColumn"> <a target="_blank" href="/ai/726" title="豆包大模型" class="overflowclass abripone">豆包大模型</a> <p class="overflowclass abriptwo">字节跳动自主研发的一系列大型语言模型</p> <div class="aidconstab flexRow"> <a class="aidcontbp flexRow flexcenter" href="/ai/tag/code" target="_blank">AI 编程开发</a><a class="aidcontbp flexRow flexcenter" href="/ai/tag/code/large-model" target="_blank">AI大模型</a> </div> </div> </div> </div> <div class="aidcons flexRow "> <div class="aibtns flexRow"> <a target="_blank" href="/ai/725" title="通义千问" class="aibtnsa flexRow" > <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679974228210.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="通义千问" class="aibtnimg" onerror="this.src='/static/lhimages/moren/morentu.png'"> </a> <div class="aibtn-right flexColumn"> <a target="_blank" href="/ai/725" title="通义千问" class="overflowclass abripone">通义千问</a> <p class="overflowclass abriptwo">阿里巴巴推出的全能AI助手</p> <div class="aidconstab flexRow"> <a class="aidcontbp flexRow flexcenter" href="/ai/tag/code" target="_blank">AI 编程开发</a><a class="aidcontbp flexRow flexcenter" href="/ai/tag/ai-agent" target="_blank">Agent智能体</a> </div> </div> </div> </div> <div class="aidcons flexRow "> <div class="aibtns flexRow"> <a target="_blank" href="/ai/854" title="腾讯元宝" class="aibtnsa flexRow" > <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679978251103.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="腾讯元宝" class="aibtnimg" onerror="this.src='/static/lhimages/moren/morentu.png'"> </a> <div class="aibtn-right flexColumn"> <a target="_blank" href="/ai/854" title="腾讯元宝" class="overflowclass abripone">腾讯元宝</a> <p class="overflowclass abriptwo">腾讯混元平台推出的AI助手</p> <div class="aidconstab flexRow"> <a class="aidcontbp flexRow flexcenter" href="/ai/tag/office/docs" target="_blank">文档处理</a><a class="aidcontbp flexRow flexcenter" href="/ai/tag/chat" target="_blank">AI 聊天问答</a> </div> </div> </div> </div> <div class="aidcons flexRow "> <div class="aibtns flexRow"> <a target="_blank" href="/ai/724" title="文心一言" class="aibtnsa flexRow" > <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679974557049.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="文心一言" class="aibtnimg" onerror="this.src='/static/lhimages/moren/morentu.png'"> </a> <div class="aibtn-right flexColumn"> <a target="_blank" href="/ai/724" title="文心一言" class="overflowclass abripone">文心一言</a> <p class="overflowclass abriptwo">文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。</p> <div class="aidconstab flexRow"> <a class="aidcontbp flexRow flexcenter" href="/ai/tag/code" target="_blank">AI 编程开发</a><a class="aidcontbp flexRow flexcenter" href="/ai/tag/text" target="_blank">AI 文本写作</a> </div> </div> </div> </div> <div class="aidcons flexRow "> <div class="aibtns flexRow"> <a target="_blank" href="/ai/1507" title="讯飞写作" class="aibtnsa flexRow" > <img src="https://img.php.cn/upload/ai_manual/000/969/633/68b7a4153cd86671.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="讯飞写作" class="aibtnimg" onerror="this.src='/static/lhimages/moren/morentu.png'"> </a> <div class="aibtn-right flexColumn"> <a target="_blank" href="/ai/1507" title="讯飞写作" class="overflowclass abripone">讯飞写作</a> <p class="overflowclass abriptwo">基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿</p> <div class="aidconstab flexRow"> <a class="aidcontbp flexRow flexcenter" href="/ai/tag/text" target="_blank">AI 文本写作</a><a class="aidcontbp flexRow flexcenter" href="/ai/tag/text/chinese-writing" target="_blank">中文写作</a> </div> </div> </div> </div> <div class="aidcons flexRow "> <div class="aibtns flexRow"> <a target="_blank" href="/ai/1115" title="即梦AI" class="aibtnsa flexRow" > <img src="https://img.php.cn/upload/ai_manual/001/246/273/68b6d8f7c530c315.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="即梦AI" class="aibtnimg" onerror="this.src='/static/lhimages/moren/morentu.png'"> </a> <div class="aibtn-right flexColumn"> <a target="_blank" href="/ai/1115" title="即梦AI" class="overflowclass abripone">即梦AI</a> <p class="overflowclass abriptwo">一站式AI创作平台,免费AI图片和视频生成。</p> <div class="aidconstab flexRow"> <a class="aidcontbp flexRow flexcenter" href="/ai/tag/image/image-titching" target="_blank">图片拼接</a><a class="aidcontbp flexRow flexcenter" href="/ai/tag/image/image-create" target="_blank">图画生成</a> </div> </div> </div> </div> <div class="aidcons flexRow "> <div class="aibtns flexRow"> <a target="_blank" href="/ai/808" title="ChatGPT" class="aibtnsa flexRow" > <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679970194596.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="ChatGPT" class="aibtnimg" onerror="this.src='/static/lhimages/moren/morentu.png'"> </a> <div class="aibtn-right flexColumn"> <a target="_blank" href="/ai/808" title="ChatGPT" class="overflowclass abripone">ChatGPT</a> <p class="overflowclass abriptwo">最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。</p> <div class="aidconstab flexRow"> <a class="aidcontbp flexRow flexcenter" href="/ai/tag/code" target="_blank">AI 编程开发</a><a class="aidcontbp flexRow flexcenter" href="/ai/tag/text" target="_blank">AI 文本写作</a> </div> </div> </div> </div> <div class="aidcons flexRow "> <div class="aibtns flexRow"> <a target="_blank" href="/ai/821" title="智谱清言 - 免费全能的AI助手" class="aibtnsa flexRow" > <img src="https://img.php.cn/upload/ai_manual/000/000/000/175679976181507.png?x-oss-process=image/resize,m_mfit,h_70,w_70,limit_0" alt="智谱清言 - 免费全能的AI助手" class="aibtnimg" onerror="this.src='/static/lhimages/moren/morentu.png'"> </a> <div class="aibtn-right flexColumn"> <a target="_blank" href="/ai/821" title="智谱清言 - 免费全能的AI助手" class="overflowclass abripone">智谱清言 - 免费全能的AI助手</a> <p class="overflowclass abriptwo">智谱清言 - 免费全能的AI助手</p> <div class="aidconstab flexRow"> <a class="aidcontbp flexRow flexcenter" href="/ai/tag/code" target="_blank">AI 编程开发</a><a class="aidcontbp flexRow flexcenter" href="/ai/tag/ai-agent" target="_blank">Agent智能体</a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="conRight artdtilRight "> <div class="artrig-adv "> <script type="text/javascript" src="https://teacher.php.cn/php/MDM3MTk1MGYxYjI5ODJmNTE0ZWVkZTA3NmJhYzhmMjI6Og=="></script> </div> <div class="hotzt artdtzt"> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>相关专题</p> </div> <a target="_blank" class="rititle-more flexRow" href="/faq/zt" title="相关专题"><span>更多</span><b></b></a> </div> <div class="hotztuls flexColumn"> <div class="hotztlls flexRow"> <a target="_blank" href="/faq/cyyblmm" class="aClass flexRow hotzta" title="C语言变量命名"><img src="https://img.php.cn/upload/subject/202306/20/2023062011315137879.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/cyyblmm" class="aClass flexRow hotztra overflowclass" title="C语言变量命名">C语言变量命名</a> <p class="aClass flexRow hotztrp overflowclass">c语言变量名规则是:1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。php中文网还提供c语言变量的相关下载、相关课程等内容,供大家免费下载使用。</p> <div class="hotztrdown flexRow"> <div class="htztdsee flexRow"> <b></b> <p class="">401</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/cyyrmzx" class="aClass flexRow hotzta" title="c语言入门自学零基础"><img src="https://img.php.cn/upload/subject/202307/25/2023072510061416338.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/cyyrmzx" class="aClass flexRow hotztra overflowclass" title="c语言入门自学零基础">c语言入门自学零基础</a> <p class="aClass flexRow hotztrp overflowclass">C语言是当代人学习及生活中的必备基础知识,应用十分广泛,本专题为大家c语言入门自学零基础的相关文章,以及相关课程,感兴趣的朋友千万不要错过了。</p> <div class="hotztrdown flexRow"> <div class="htztdsee flexRow"> <b></b> <p class="">620</p> </div> <div class="htztdTime flexRow"> <b></b> <p>2023.07.25</p> </div> </div> </div> </div> <div class="hotztlls flexRow"> <a target="_blank" href="/faq/cyyysfdyxjsx" class="aClass flexRow hotzta" title="c语言运算符的优先级顺序"><img src="https://img.php.cn/upload/subject/202308/01/2023080111194517713.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/cyyysfdyxjsx" class="aClass flexRow hotztra overflowclass" title="c语言运算符的优先级顺序">c语言运算符的优先级顺序</a> <p class="aClass flexRow hotztrp overflowclass">c语言运算符的优先级顺序是括号运算符 > 一元运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号运算符。本专题为大家提供c语言运算符相关的各种文章、以及下载和课程。</p> <div class="hotztrdown flexRow"> <div class="htztdsee flexRow"> <b></b> <p class="">354</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/cyysjjg" class="aClass flexRow hotzta" title="c语言数据结构"><img src="https://img.php.cn/upload/subject/202308/09/2023080911342582860.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/cyysjjg" class="aClass flexRow hotztra overflowclass" title="c语言数据结构">c语言数据结构</a> <p class="aClass flexRow hotztrp overflowclass">数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。</p> <div class="hotztrdown flexRow"> <div class="htztdsee flexRow"> <b></b> <p class="">259</p> </div> <div class="htztdTime flexRow"> <b></b> <p>2023.08.09</p> </div> </div> </div> </div> <div class="hotztlls flexRow"> <a target="_blank" href="/faq/cyyrandom" class="aClass flexRow hotzta" title="c语言random函数用法"><img src="https://img.php.cn/upload/subject/202309/05/2023090510495684602.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="c语言random函数用法" class="hotztaimg" onerror="this.src='/static/lhimages/moren/morentu.png'"></a> <div class="hotztright flexColumn"> <a target="_blank" href="/faq/cyyrandom" class="aClass flexRow hotztra overflowclass" title="c语言random函数用法">c语言random函数用法</a> <p class="aClass flexRow hotztrp overflowclass">c语言random函数用法:1、random.random,随机生成(0,1)之间的浮点数;2、random.randint,随机生成在范围之内的整数,两个参数分别表示上限和下限;3、random.randrange,在指定范围内,按指定基数递增的集合中获得一个随机数;4、random.choice,从序列中随机抽选一个数;5、random.shuffle,随机排序。</p> <div class="hotztrdown flexRow"> <div class="htztdsee flexRow"> <b></b> <p class="">606</p> </div> <div class="htztdTime flexRow"> <b></b> <p>2023.09.05</p> </div> </div> </div> </div> <div class="hotztlls flexRow"> <a target="_blank" href="/faq/cyyconstyf" class="aClass flexRow hotzta" title="c语言const用法"><img src="https://img.php.cn/upload/subject/202309/20/2023092013394950350.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="c语言const用法" class="hotztaimg" onerror="this.src='/static/lhimages/moren/morentu.png'"></a> <div class="hotztright flexColumn"> <a target="_blank" href="/faq/cyyconstyf" class="aClass flexRow hotztra overflowclass" title="c语言const用法">c语言const用法</a> <p class="aClass flexRow hotztrp overflowclass">const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。</p> <div class="hotztrdown flexRow"> <div class="htztdsee flexRow"> <b></b> <p class="">531</p> </div> <div class="htztdTime flexRow"> <b></b> <p>2023.09.20</p> </div> </div> </div> </div> <div class="hotztlls flexRow"> <a target="_blank" href="/faq/cyygethsdyf" class="aClass flexRow hotzta" title="c语言get函数的用法"><img src="https://img.php.cn/upload/subject/202309/20/2023092013411699386.jpg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="c语言get函数的用法" class="hotztaimg" onerror="this.src='/static/lhimages/moren/morentu.png'"></a> <div class="hotztright flexColumn"> <a target="_blank" href="/faq/cyygethsdyf" class="aClass flexRow hotztra overflowclass" title="c语言get函数的用法">c语言get函数的用法</a> <p class="aClass flexRow hotztrp overflowclass">get函数是一个用于从输入流中获取字符的函数。可以从键盘、文件或其他输入设备中读取字符,并将其存储在指定的变量中。本文介绍了get函数的用法以及一些相关的注意事项。希望这篇文章能够帮助你更好地理解和使用get函数 。</p> <div class="hotztrdown flexRow"> <div class="htztdsee flexRow"> <b></b> <p class="">646</p> </div> <div class="htztdTime flexRow"> <b></b> <p>2023.09.20</p> </div> </div> </div> </div> <div class="hotztlls flexRow"> <a target="_blank" href="/faq/cszcshdfa" class="aClass flexRow hotzta" title="c数组初始化的方法"><img src="https://img.php.cn/upload/subject/202309/22/2023092210075077827.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/cszcshdfa" class="aClass flexRow hotztra overflowclass" title="c数组初始化的方法">c数组初始化的方法</a> <p class="aClass flexRow hotztrp overflowclass">c语言数组初始化的方法有直接赋值法、不完全初始化法、省略数组长度法和二维数组初始化法。详细介绍:1、直接赋值法,这种方法可以直接将数组的值进行初始化;2、不完全初始化法,。这种方法可以在一定程度上节省内存空间;3、省略数组长度法,这种方法可以让编译器自动计算数组的长度;4、二维数组初始化法等等。</p> <div class="hotztrdown flexRow"> <div class="htztdsee flexRow"> <b></b> <p class="">604</p> </div> <div class="htztdTime flexRow"> <b></b> <p>2023.09.22</p> </div> </div> </div> </div> <div class="hotztlls flexRow"> <a target="_blank" href="/faq/elsyandexyqrk" class="aClass flexRow hotzta" title="俄罗斯Yandex引擎入口"><img src="https://img.php.cn/upload/subject/000/000/086/697991ee4eb4b777.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="俄罗斯Yandex引擎入口" class="hotztaimg" onerror="this.src='/static/lhimages/moren/morentu.png'"></a> <div class="hotztright flexColumn"> <a target="_blank" href="/faq/elsyandexyqrk" class="aClass flexRow hotztra overflowclass" title="俄罗斯Yandex引擎入口">俄罗斯Yandex引擎入口</a> <p class="aClass flexRow hotztrp overflowclass">2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。</p> <div class="hotztrdown flexRow"> <div class="htztdsee flexRow"> <b></b> <p class="">158</p> </div> <div class="htztdTime flexRow"> <b></b> <p>2026.01.28</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="vue.js图片相册幻灯片实例下载" href="/xiazai/js/8701"><span>[图片特效]</span><span>vue.js图片相册幻灯片实例下载</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" title="jQuery自动填充表单功能代码" href="/xiazai/js/8700"><span>[表单按钮]</span><span>jQuery自动填充表单功能代码</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" title="基于ThreeJs的3D图片相册插件" href="/xiazai/js/8699"><span>[图片特效]</span><span>基于ThreeJs的3D图片相册插件</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" title="JS登录和注册表单动画切换特效" href="/xiazai/js/8698"><span>[表单按钮]</span><span>JS登录和注册表单动画切换特效</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" title="jquery鼠标经过图片抖动" href="/xiazai/js/8697"><span>[图片特效]</span><span>jquery鼠标经过图片抖动</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" title="Vue记事本添加删除特效" href="/xiazai/js/8696"><span>[表单按钮]</span><span>Vue记事本添加删除特效</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" title="jquery多张叠加图片上下切换代码" href="/xiazai/js/8695"><span>[图片特效]</span><span>jquery多张叠加图片上下切换代码</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" title="支持弹出图片文字和表单模态框代码" href="/xiazai/js/8694"><span>[表单按钮]</span><span>支持弹出图片文字和表单模态框代码</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" title="jquery表单点击滑动下拉框美化" href="/xiazai/js/8693"><span>[表单按钮]</span><span>jquery表单点击滑动下拉框美化</span></a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" title="jquery带页码标识焦点图代码" href="/xiazai/js/8692"><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/4294" title="手绘海鲜鱼虾食材合集矢量素材"><span>[网站素材]</span><span>手绘海鲜鱼虾食材合集矢量素材</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" href="/xiazai/sucai/4293" title="开学季主题宣传海报设计模板下载"><span>[网站素材]</span><span>开学季主题宣传海报设计模板下载</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" href="/xiazai/sucai/4292" title="2026马年金色徽章矢量模板"><span>[网站素材]</span><span>2026马年金色徽章矢量模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" href="/xiazai/sucai/4291" title="汉堡美食INS海报模板设计素材下载"><span>[网站素材]</span><span>汉堡美食INS海报模板设计素材下载</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" href="/xiazai/sucai/4290" title="新中式黑金山水线条矢量素材"><span>[网站素材]</span><span>新中式黑金山水线条矢量素材</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" href="/xiazai/sucai/4289" title="马年新年装饰图案合集矢量素材"><span>[网站素材]</span><span>马年新年装饰图案合集矢量素材</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" href="/xiazai/sucai/4288" title="极简线条披萨餐厅菜单矢量模板"><span>[网站素材]</span><span>极简线条披萨餐厅菜单矢量模板</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" href="/xiazai/sucai/4287" title="美味披萨INS宣传模板设计下载"><span>[网站素材]</span><span>美味披萨INS宣传模板设计下载</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" href="/xiazai/sucai/4286" title="新春喜庆烟花装饰合集矢量素材"><span>[网站素材]</span><span>新春喜庆烟花装饰合集矢量素材</span> </a> </div> </li> <li> <div class="wzrfourli flexRow"> <b></b> <a target="_blank" href="/xiazai/sucai/4285" 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/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_75,w_120,limit_0" alt="最新Python教程 从入门到精通" class="ristyAimg" onerror="this.src='/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a target="_blank" href="/course/1696.html" title="最新Python教程 从入门到精通" class="rirightp overflowclass">最新Python教程 从入门到精通</a> <div class="risrdown flexRow"> <p>共4课时 | 22.3万人学习</p> </div> </div> </div> <div class="ristyA flexRow " > <a target="_blank" href="/course/1688.html" title="Django 教程"> <img src="https://img.php.cn/upload/course/000/000/090/68a6fd2c0a705569.jpeg?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="Django 教程" class="ristyAimg" onerror="this.src='/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a target="_blank" href="/course/1688.html" title="Django 教程" class="rirightp overflowclass">Django 教程</a> <div class="risrdown flexRow"> <p>共28课时 | 3.6万人学习</p> </div> </div> </div> <div class="ristyA flexRow " > <a target="_blank" href="/course/1684.html" title="SciPy 教程"> <img src="https://img.php.cn/upload/course/000/000/090/689da63e955bb889.png?x-oss-process=image/resize,m_mfit,h_75,w_120,limit_0" alt="SciPy 教程" class="ristyAimg" onerror="this.src='/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a target="_blank" href="/course/1684.html" title="SciPy 教程" class="rirightp overflowclass">SciPy 教程</a> <div class="risrdown flexRow"> <p>共10课时 | 1.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课时 | 11.2万人学习</p> </div> </div> </div> <div class="ristyA flexRow " > <a target="_blank" href="/course/812.html" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)"> <img src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" class="ristyAimg" onerror="this.src='/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a target="_blank" href="/course/812.html" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" class="rirightp overflowclass">最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)</a> <div class="risrdown flexRow"> <p>共79课时 | 151.7万人学习</p> </div> </div> </div> <div class="ristyA flexRow " > <a target="_blank" href="/course/639.html" title="phpStudy极速入门视频教程"> <img src="https://img.php.cn/upload/course/000/000/068/62611ef88fcec821.jpg?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="phpStudy极速入门视频教程" class="ristyAimg" onerror="this.src='/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a target="_blank" href="/course/639.html" title="phpStudy极速入门视频教程" class="rirightp overflowclass">phpStudy极速入门视频教程</a> <div class="risrdown flexRow"> <p>共6课时 | 53.4万人学习</p> </div> </div> </div> </div> <div class="threefd jpktabd" style="display:none;"> <div class="ristyA flexRow " > <a target="_blank" href="/course/1696.html" title="最新Python教程 从入门到精通"> <img src="https://img.php.cn/upload/course/000/000/081/68c135bb72783194.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="最新Python教程 从入门到精通" class="ristyAimg" onerror="this.src='/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a target="_blank" href="/course/1696.html" title="最新Python教程 从入门到精通" class="rirightp overflowclass">最新Python教程 从入门到精通</a> <div class="risrdown flexRow"> <p>共4课时 | 22.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课时 | 11.2万人学习</p> </div> </div> </div> <div class="ristyA flexRow " > <a target="_blank" href="/course/1655.html" title="PHP新手语法线上课程教学"> <img src="https://img.php.cn/upload/course/000/000/081/684a8c23d811b293.png?x-oss-process=image/resize,m_mfit,h_86,w_140,limit_0" alt="PHP新手语法线上课程教学" class="ristyAimg" onerror="this.src='/static/mobimages/moren/morentu.png'"> </a> <div class="ristyaRight flexColumn"> <a target="_blank" href="/course/1655.html" title="PHP新手语法线上课程教学" class="rirightp overflowclass">PHP新手语法线上课程教学</a> <div class="risrdown flexRow"> <p>共13课时 | 0.9万人学习</p> </div> </div> </div> </div> <script> $('.jpkcTabs>div').click(function (e) { $('.jpkcTabs>div').removeClass('check') $(this).addClass('check') $('.jpkcTab .jpktabd').css('display', 'none') $('.' + e.currentTarget.dataset.id).show() }) </script> </div> </div> <div class="zxarts "> <div class="rightdTitle flexRow"> <div class="title-left flexRow"> <b></b> <p>最新文章</p> </div> <a class="rititle-more flexRow" href="" title="最新文章" target="_blank"><span>更多</span><b></b></a> </div> <div class="xgwzlist "> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何在 Django 中通过条件筛选获取数据库的多条记录并关联其他模型" href="/faq/2041795.html">如何在 Django 中通过条件筛选获取数据库的多条记录并关联其他模型</a></div> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何在 Django 中通过条件筛选获取数据库中的多列数据" href="/faq/2041779.html">如何在 Django 中通过条件筛选获取数据库中的多列数据</a></div> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何在类中安全复用外部循环变量调用字符串方法" href="/faq/2041777.html">如何在类中安全复用外部循环变量调用字符串方法</a></div> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="AWS Lambda 中数据库连接复用导致读取陈旧数据的解决方案" href="/faq/2041772.html">AWS Lambda 中数据库连接复用导致读取陈旧数据的解决方案</a></div> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="Python 字符串比较大小写敏感:修复宝可梦初始选择逻辑错误" href="/faq/2041758.html">Python 字符串比较大小写敏感:修复宝可梦初始选择逻辑错误</a></div> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何在类中安全复用方法名变量实现动态函数调用" href="/faq/2041757.html">如何在类中安全复用方法名变量实现动态函数调用</a></div> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何在类中安全复用函数名变量以调用字符串内置方法" href="/faq/2041679.html">如何在类中安全复用函数名变量以调用字符串内置方法</a></div> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何在类中安全复用外部循环变量作为方法调用名?" href="/faq/2041678.html">如何在类中安全复用外部循环变量作为方法调用名?</a></div> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何修复 Python 中因大小写不匹配导致的输入判断失效问题" href="/faq/2041643.html">如何修复 Python 中因大小写不匹配导致的输入判断失效问题</a></div> <div class="xgwzlid flexRow"><b></b><a target="_blank" title="如何让YOLO模型在训练时正确调用GPU(以PyTorch版YOLO为例)" href="/faq/2041608.html">如何让YOLO模型在训练时正确调用GPU(以PyTorch版YOLO为例)</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=1516327&time=1769634552"> </script> <script src="/static/ueditor/third-party/SyntaxHighlighter/shCore.js?1769634552"></script> <script> article_status = "1522154"; </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', '11']); 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>