当前位置:首页>python>《Python 从入门到精通》044|查找与判断:startswith、endswith、find、in 的用法

《Python 从入门到精通》044|查找与判断:startswith、endswith、find、in 的用法

  • 2026-07-01 14:04:16
《Python 从入门到精通》044|查找与判断:startswith、endswith、find、in 的用法

前面一章,我们已经把常见字符串方法整体过了一遍。 你已经知道,字符串不是只能拿来打印,它还可以拆、可以拼、可以替换、可以清洗。

但在真实开发里,还有一类操作出现得特别频繁:

判断一段文本里有没有某个内容 判断它是不是以某个内容开头 判断它是不是以某个内容结尾 找到某个关键词第一次出现的位置

这些动作听起来很普通,但实际用得非常多。

比如:

判断文件是不是 pdf 判断网址是不是以 https 开头 判断邮箱里有没有 @ 判断日志里有没有 error 判断一条消息是不是命令开头 找到某个关键词在文本里的位置

这些需求,本质上都属于同一类:

查找与判断

这一章我们就把字符串里最常用的这几个动作彻底讲清楚。 真正掌握以后,你会发现,很多文本处理题,本质上都绕不开这几个基础操作。

一、为什么查找与判断这么重要

因为程序面对真实文本时,第一步常常不是修改,而是先确认。

先确认有没有 先确认是不是 先确认在什么位置 然后再决定下一步做什么

比如用户上传一个文件,你得先判断后缀。 比如一条日志进来,你得先判断有没有报错关键词。 比如收到一个网址,你得先判断是不是合法链接开头。 比如读到一段文本,你得先找到某个标记在哪里。

所以查找与判断,其实就是文本处理里的第一道门。

你连门都没进,后面的拆分、替换、提取自然也做不顺。

二、先认识最常用的四个工具

这一章的主角主要有四个:

startswith()endswith()find()in

你先不用急着背。 我们先用最直白的话把它们的用途说清楚。

startswith()判断字符串是不是以某个内容开头

endswith()判断字符串是不是以某个内容结尾

find()查找某个内容第一次出现的位置

in判断某个内容在不在字符串里

你会发现,这四个工具里,有的是偏判断,有的是偏定位。 它们经常搭配着用。

三、startswith():判断是不是以某个内容开头

先看最简单的例子:

url = 'https://example.com'print(url.startswith('https://'))

输出:

True

意思很直接:

这个字符串,确实是以 https:// 开头的

再看一个反例:

url = 'http://example.com'print(url.startswith('https://'))

输出:

False

因为它不是以 https:// 开头。

这个方法特别适合做开头规则判断。

比如:

判断网址协议 判断文件名前缀 判断用户输入是不是命令 判断一条文本是不是以某个关键词起头

它最大的优点就是:

语义非常清楚

你一看代码就知道,这里在判断开头,而不是去硬切片比较。

四、为什么 startswith() 往往比切片更自然

比如判断文件名是不是以 data_ 开头。

你当然可以这样写:

filename = 'data_report.txt'print(filename[:5] == 'data_')

这能跑,也没错。

但如果写成:

filename = 'data_report.txt'print(filename.startswith('data_'))

是不是明显更顺眼。

因为后者直接把你的意图说出来了:

我在判断它是不是以 data_ 开头

而不是让别人先看切片,再猜你的意思。

所以一个非常实用的经验是:

凡是判断开头,优先想到 startswith()而不是自己先切片再比

五、startswith() 在真实场景里有多常见

非常常见。

比如判断命令输入:

cmd = '/help'print(cmd.startswith('/'))

如果是 True,说明这可能是一条命令。

比如判断日志级别:

log = 'ERROR: 文件读取失败'print(log.startswith('ERROR'))

比如判断某个文件是否属于某类命名规则:

filename = 'img_001.png'print(filename.startswith('img_'))

这些都特别接近实际开发。

你以后做文件处理、命令行工具、日志分析、爬虫过滤时,经常会看到这种写法。

六、startswith() 还能一次判断多个开头

这点很多新手一开始不知道,但很好用。

比如你想判断一个文件是不是图片文件名,而且前缀可能是 img_ 或 photo_

filename = 'photo_001.png'print(filename.startswith(('img_''photo_')))

输出:

True

注意这里传进去的是一个元组。 意思是:

只要符合其中任意一个开头,就算真

这在做多规则匹配时特别方便。 你不用写一长串 or

比如判断一个网址是不是 http 或 https:

url = 'http://example.com'print(url.startswith(('http://''https://')))

这类写法在实战里很常见。

七、endswith():判断是不是以某个内容结尾

这个和 startswith() 是一对。

看例子:

filename = 'report.pdf'print(filename.endswith('.pdf'))

输出:

True

意思很清楚:

这个文件名,确实是以 .pdf 结尾的

再看:

filename = 'report.txt'print(filename.endswith('.pdf'))

输出:

False

它最常见的用途,就是判断后缀。

比如:

文件扩展名判断 网址后缀判断 路径结尾判断 用户名格式判断 文本标点结尾判断

八、endswith() 为什么在文件处理里特别常见

因为文件类型判断实在太高频了。

比如判断是不是图片:

filename = 'cat.jpg'print(filename.endswith('.jpg'))

判断是不是 Excel 文件:

filename = 'sales.xlsx'print(filename.endswith('.xlsx'))

判断是不是 Python 脚本:

filename = 'main.py'print(filename.endswith('.py'))

你会发现,后缀这件事如果自己切片也能做,但 endswith() 更直接、更稳。

比如你手动切片:

filename[-4:] == '.pdf'

虽然行,但可读性还是不如:

filename.endswith('.pdf')

特别是后缀长度不固定时,后者明显更舒服。

九、endswith() 也支持多个候选结尾

这点和 startswith() 一样。

比如你想判断一个文件是不是图片格式,可能是 .jpg.png.gif

filename = 'avatar.png'print(filename.endswith(('.jpg''.png''.gif')))

输出:

True

这在文件筛选、批量处理、目录遍历时特别常见。

比如你后面处理一堆文件时,经常会写这种逻辑:

if filename.endswith(('.jpg''.png')):    print('这是图片文件')

一旦知道这个写法,代码会简洁很多。

十、startswith() 和 endswith() 的本质是什么

它们本质上都是做真假判断。

结果只有两个可能:

TrueFalse

所以它们特别适合放在 if 判断里。

比如:

filename = 'report.pdf'if filename.endswith('.pdf'):    print('可以按 PDF 文件处理')else:    print('不是 PDF 文件')

再比如:

url = 'https://example.com'if url.startswith('https://'):    print('安全链接')

这也是为什么这两个方法特别适合拿来做规则过滤。

因为它们不是告诉你位置,而是直接告诉你:

是不是

十一、find():查找某个内容第一次出现的位置

前面两个方法更偏判断。find() 则更偏定位。

看例子:

text = 'I love Python'print(text.find('Python'))

输出:

7

意思是:

Python 这段内容,第一次从索引 7 开始出现

如果我们把这句话的位置标一下:

I   _   l   o   v   e   _   P   y   t   h   o   n0123456789101112

你就会更容易明白为什么返回的是 7。

所以 find() 的核心价值是:

帮你找到某段内容第一次出现的起始位置

十二、find() 找不到时会返回什么

这个点一定要记住。

如果找不到,它不会报错,而是返回:

-1

看例子:

text = 'I love Python'print(text.find('Java'))

输出:

-1

这说明 Java 不在这段文本里。

这个设计非常实用。 因为你可以根据返回值判断下一步怎么做,而不是程序直接崩掉。

比如:

text = 'I love Python'pos = text.find('Python')if pos != -1:    print('找到了,位置是', pos)else:    print('没找到')

这类写法很常见。

十三、find() 和 in 有什么区别

这也是很多新手容易混淆的点。

先看 in

text = 'I love Python'print('Python'in text)

输出:

True

它只告诉你:

在不在

再看 find()

print(text.find('Python'))

输出:

7

它告诉你:

在,而且从哪开始

所以区别很简单:

in 更适合做真假判断find() 更适合做位置定位

如果你只想知道有没有,用 in 更直接。 如果你还想知道在哪,用 find() 更合适。

十四、什么时候优先用 in

当你只关心有没有的时候。

比如判断文本里有没有关键词:

text = '欢迎学习 Python'print('Python'in text)

判断邮箱里有没有 @

email = 'tom@example.com'print('@'in email)

判断日志里有没有 error

log = '2026-03-26 error: file not found'print('error'in log)

这些需求,本质上都不关心位置,只关心存不存在。 那 in 就非常合适。

它的好处就是简单、直观、好记。

十五、什么时候优先用 find()

当你除了想知道有没有,还想进一步处理位置时。

比如你想找到 @ 在邮箱里的位置:

email = 'tom@example.com'print(email.find('@'))

比如你想从某个标记位置开始切片:

text = 'name=tom'pos = text.find('=')print(pos)print(text[pos + 1:])

输出:

4tom

这里就很典型。

先用 find() 定位 再用切片取后面的内容

这就是字符串处理里非常常见的一套组合拳。

十六、in 的语法为什么特别像自然语言

比如:

'Python'in text

你几乎可以直接把它读成:

Python 在不在 text 里面

这就是它为什么那么受欢迎。

因为不光短,而且语义非常自然。

Python 这门语言有一个很大的特点,就是很多写法读起来就像说人话。in 就是一个很典型的例子。

所以以后你遇到成员判断,不只是字符串,列表、字典、集合里也会大量看到 in

只是这一章,我们先聚焦在字符串里。

十七、in 在字符串里判断的是什么

它判断的是:

某段子串是否存在于原字符串中

看例子:

text = 'I love Python'print('love'in text)

输出:

True

说明 love 这整段就在里面。

再看:

print('thon'in text)

输出:

True

因为 Python 里本来就包含 thon 这段子串。

再看:

print('Java'in text)

输出:

False

这说明,in 判断的不是单个字符专属,它既能判断字符,也能判断一整段子串。

十八、not in:判断某段内容不在里面

既然有 in,自然也就有 not in

比如:

text = 'I love Python'print('Java'notin text)

输出:

True

因为 Java 的确不在里面。

这在过滤逻辑里也很常见。

比如:

filename = 'report.pdf'if'.exe'notin filename:    print('不是可执行文件')

再比如:

comment = '这门课真不错'if'广告'notin comment:    print('不是广告内容')

读起来也非常自然。

十九、find() 还能从指定位置开始找

这点很实用。

比如:

text = 'abcabcabc'print(text.find('abc'))

输出:

0

因为第一次出现就是从 0 开始。

但如果你想从后面继续找,就可以指定开始位置:

print(text.find('abc'1))

输出:

3

意思是:

从索引 1 开始往后找,第一次找到的位置是 3

再看:

print(text.find('abc'4))

输出:

6

这个在什么场景里有用?

比如你想找第二次出现的位置, 或者跳过前面的匹配结果继续往后找。

二十、find() 还能指定结束范围

除了起始位置,还可以写结束位置。

text = 'abcabcabc'print(text.find('abc'05))

这里的意思是:

只在索引 0 到 5 这个范围内找

这样可以限制搜索区域。

虽然新手阶段最常用的是:

find(内容)

或者:

find(内容, 开始位置)

但你知道它还能控制范围,后面处理复杂文本时会更从容。

二十一、实际场景一:判断文件类型

这个太经典了。

比如一批文件名:

filename = 'photo.jpg'

你想判断是不是图片:

if filename.endswith(('.jpg''.png''.gif')):    print('图片文件')else:    print('不是图片文件')

这比手动切片判断舒服太多。

特别是后缀种类一多,endswith() 的优势就很明显。

二十二、实际场景二:判断网址是否合法开头

比如:

url = 'https://www.example.com'

你想快速筛掉明显不合法的网址:

if url.startswith(('http://''https://')):    print('看起来像网址')else:    print('格式不对')

这种逻辑在爬虫、接口请求、表单校验里都很常见。

你会发现,startswith() 本质上就是规则过滤器。

二十三、实际场景三:判断邮箱格式里有没有 @

比如:

email = 'tom@example.com'

最粗略的判断方式之一就是:

if'@'in email:    print('至少包含 @')else:    print('格式明显不对')

当然,真正严格的邮箱校验没这么简单。 但入门阶段你先体会这个思路就够了:

很多格式判断,第一步就是看某个关键符号在不在。

而 in 正是做这件事的最自然工具。

二十四、实际场景四:从路径里找最后一个斜杠之后的内容

比如:

path = '/home/user/report.txt'

如果你想取出文件名,前提之一就是先知道最后的分隔符在哪里。 虽然这一章主讲的是 find(),严格说处理最后一个位置还有别的方法更顺手,后面会慢慢接触到。 但你现在要先建立一个意识:

文本提取往往分两步走。

第一步,先查找标记位置。 第二步,再切片拿内容。

比如这个思路在很多题里都适用:

找到 =找到 :找到 @找到 -找到 /

然后基于这个位置再做切片。

二十五、实际场景五:过滤日志里的错误信息

假设有这样一批日志:

log1 = 'INFO: 程序启动成功'log2 = 'ERROR: 文件读取失败'log3 = 'WARNING: 内存不足'

如果你只想看错误日志:

if log2.startswith('ERROR'):    print('这是错误日志')

或者你想更宽松一点,只要包含 ERROR 就算:

if'ERROR'in log2:    print('检测到错误')

你看,同样是判断,选择哪个方法,取决于你判断的是:

开头规则 还是只要包含就行

这就是方法之间最实际的区别。

二十六、find() 和切片经常组合使用

这点一定要专门感受一下。

比如你有这样一行配置:

text = 'name=zhangsan'

你想拿到等号后面的值。

最自然的步骤就是:

先找 = 在哪 再从后面切出来

代码:

text = 'name=zhangsan'pos = text.find('=')value = text[pos + 1:]print(pos)print(value)

输出:

4zhangsan

这就是很典型的字符串处理思路。

查找负责定位 切片负责提取

很多文本题其实都是这个套路。

二十七、最容易犯的几个错

先说第一个。

很多人会把 find() 返回的 0 误以为是假。

比如:

text = 'Python is good'pos = text.find('Python')print(pos)

输出是:

0

这不是没找到。 这是找到了,而且就在开头。

所以判断 find() 结果时,别写得太随意。 最稳的是明确判断:

if pos != -1:    print('找到了')

第二个错,是把 in 和 find() 混着用。

如果只要真假,优先 in。 如果要位置,优先 find()

第三个错,是以为 startswith() 和 endswith() 能判断中间内容。 不能。 它们只管开头和结尾。

第四个错,是大小写问题。

比如:

text = 'Python'print('python'in text)

输出是:

False

因为大小写不一样。

字符串判断默认是区分大小写的,这一点一定要记住。

二十八、大小写不同怎么办

如果你想忽略大小写再判断,通常要先统一大小写。

比如:

text = 'Python'print('python'in text.lower())

输出:

True

再比如判断文件后缀时,有的人会传 .JPG,有的人会传 .jpg

那你就可以先统一转成小写:

filename = 'PHOTO.JPG'if filename.lower().endswith('.jpg'):    print('这是 jpg 文件')

这在真实开发里非常重要。 因为很多脏数据、用户输入,大小写都不统一。

二十九、别把这些方法当成死知识,要把它们放进动作里理解

你真正要记住的,不是四个名字,而是四种动作。

判断开头 用 startswith()

判断结尾 用 endswith()

判断在不在 用 in

查找位置 用 find()

只要你把它们和动作绑定起来,后面遇到题目时就会自然很多。

看到文件后缀,脑子里蹦出 endswith()看到网址协议,脑子里蹦出 startswith()看到关键词过滤,脑子里蹦出 in看到要提取某个标记后面的内容,脑子里蹦出 find() 加切片

这才算真正学会。

三十、练习题:这一章一定要自己写一遍

下面这些练习非常有代表性,建议你自己先敲。

1. 判断 https://openai.com 是否以 https:// 开头

url = 'https://openai.com'print(url.startswith('https://'))

2. 判断 report.pdf 是否以 .pdf 结尾

filename = 'report.pdf'print(filename.endswith('.pdf'))

3. 判断 tom@example.com 中是否包含 @

email = 'tom@example.com'print('@'in email)

4. 查找 Python 在 I love Python 中第一次出现的位置

text = 'I love Python'print(text.find('Python'))

5. 判断 Java 是否不在 I love Python 中

text = 'I love Python'print('Java'notin text)

6. 判断 PHOTO.JPG 是否是 jpg 文件,忽略大小写

filename = 'PHOTO.JPG'print(filename.lower().endswith('.jpg'))

7. 找出 name=zhangsan 里等号的位置,并取出后面的值

text = 'name=zhangsan'pos = text.find('=')print(pos)print(text[pos + 1:])

你把这些题自己敲顺了,这一章的核心就基本吃透了。

三十一、本章小结

这一章你要带走的,不只是四个函数名,而是一整套字符串查找与判断思路。

startswith() 用来判断开头。endswith() 用来判断结尾。in 用来判断某段内容在不在。find() 用来定位某段内容第一次出现的位置。 找不到时,find() 返回 -1。 而字符串判断默认区分大小写,必要时要先统一大小写再处理。

更重要的是,你要开始形成一种处理文本的基本流程:

先判断 再定位 再切片 再提取

很多字符串问题,尤其是那些看起来有点像业务的小题,最后都会回到这条主线上。

下一章我们继续讲 字符串格式化入门:从 % 到 format。 到那一章,你会开始学习怎么把变量、数字、文本更优雅地塞进一段完整的话里,让输出不只是能跑,而且更整齐、更专业。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 12:35:04 HTTP/2.0 GET : https://f.mffb.com.cn/a/491543.html
  2. 运行时间 : 0.182557s [ 吞吐率:5.48req/s ] 内存消耗:4,733.55kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=55b146a3c3db2f20b1e30eb76cb46d6c
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000669s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000521s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.015012s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.005898s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000660s ]
  6. SELECT * FROM `set` [ RunTime:0.015746s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000645s ]
  8. SELECT * FROM `article` WHERE `id` = 491543 LIMIT 1 [ RunTime:0.002299s ]
  9. UPDATE `article` SET `lasttime` = 1783053304 WHERE `id` = 491543 [ RunTime:0.019268s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.001239s ]
  11. SELECT * FROM `article` WHERE `id` < 491543 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.005886s ]
  12. SELECT * FROM `article` WHERE `id` > 491543 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004070s ]
  13. SELECT * FROM `article` WHERE `id` < 491543 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.017726s ]
  14. SELECT * FROM `article` WHERE `id` < 491543 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.017211s ]
  15. SELECT * FROM `article` WHERE `id` < 491543 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006137s ]
0.184060s