当前位置:首页>python>Python字符串详解

Python字符串详解

  • 2026-02-05 00:49:54
Python字符串详解

Python字符串详解

字符串是Python中最常用的数据类型之一,用于表示文本数据。Python提供了丰富的字符串操作方法和功能。本文将详细介绍Python字符串的特性、操作和最佳实践。

一、字符串概述

1. 什么是字符串?

字符串是由字符组成的不可变序列,用于表示文本数据。在Python中,字符串可以包含字母、数字、符号、空格和Unicode字符。

2. 字符串的特点

  • 不可变性
    :字符串创建后不能修改其内容
  • 有序性
    :字符在字符串中有固定的顺序
  • 可迭代性
    :可以使用循环遍历字符串中的每个字符
  • 支持Unicode
    :可以处理各种语言的字符

二、字符串的创建

1. 基本创建方法

Python中可以使用单引号'、双引号"或三引号'''/"""创建字符串:

# 使用单引号创建字符串str1 ='Hello, World!'# 使用双引号创建字符串str2 ="Hello, World!"# 使用三单引号创建多行字符串str3 ='''Hello,World!'''# 包含换行符# 使用三双引号创建多行字符串str4 ="""Hello,World!"""# 输出字符串print(str1)print(str2)print(str3)print(str4)

2. 单引号与双引号的选择

单引号和双引号的功能完全相同,可以根据个人喜好选择使用。当字符串中包含引号时,可以灵活选择:

# 字符串中包含单引号,使用双引号str1 ="He said, 'Hello!'"# 字符串中包含双引号,使用单引号str2 ='She said, "Hi!"'# 使用转义字符也可以str3 ='He said, \'Hello!\''str4 ="She said, \"Hi!\""

3. 三引号的用途

三引号主要用于创建多行字符串或包含复杂内容的字符串:

# 多行字符串multiline ='''这是一个多行字符串第二行第三行'''# 保留换行符print(multiline)# 包含特殊字符的字符串documentation ="""函数名: add功能: 返回两个数的和参数: a (int) - 第一个数      b (int) - 第二个数返回值: int - 两个数的和"""print(documentation)# 注释(虽然不是真正的注释,但可以作为多行注释使用)'''这是一个多行注释可以用来注释掉一大段代码'''print("Hello")

三、字符串的不可变性

字符串是不可变的,一旦创建就不能修改其内容。任何试图修改字符串的操作都会创建一个新的字符串:

# 字符串不可变性示例str1 ="Hello"# 尝试修改字符串的第一个字符(会报错)try:    str1[0]='h'except TypeError as e:print(f"错误:{e}")# 错误:'str' object does not support item assignment# 修改字符串的正确方法(创建新字符串)str2 ='h'+ str1[1:]print(str2)# hello# 使用replace()方法(返回新字符串)str3 = str1.replace('H','h')print(str3)# helloprint(str1)# Hello(原字符串不变)

四、字符串的索引和切片

1. 索引

字符串中的每个字符都有一个索引,可以通过索引访问单个字符。索引从0开始,也可以使用负索引从末尾开始计数:

# 字符串索引示例text ="Python"# 正索引print(text[0])# Pprint(text[1])# yprint(text[2])# t# 负索引print(text[-1])# n(最后一个字符)print(text[-2])# o(倒数第二个字符)print(text[-6])# P(倒数第六个字符,即第一个字符)# 超出范围的索引会报错try:print(text[10])except IndexError as e:print(f"错误:{e}")# 错误:string index out of range

2. 切片

切片用于获取字符串的子串,语法为string[start:end:step]

  • start
    :切片的起始索引(包含)
  • end
    :切片的结束索引(不包含)
  • step
    :步长(可选,默认为1)
# 字符串切片示例text ="Python Programming"# 基本切片print(text[0:6])# Python(索引0到6,不包含6)print(text[7:])# Programming(索引7到末尾)print(text[:6])# Python(从开头到索引6,不包含6)# 使用负索引切片print(text[-11:])# Programming(从倒数第11个字符到末尾)print(text[:-11])# Python(从开头到倒数第11个字符,不包含)# 使用步长print(text[0:11:2])# Pto rg(每2个字符取一个)print(text[::2])# Pto rgamn(从开头到末尾,每2个字符取一个)print(text[::-1])# gnimmargorP nohtyP(反转字符串)# 所有字符print(text[:])# Python Programming(整个字符串)

五、字符串的基本操作

1. 字符串拼接

可以使用+运算符拼接字符串:

# 字符串拼接示例first_name ="张"last_name ="荣殿"full_name = first_name + last_nameprint(full_name)# 张荣殿# 拼接不同类型的数据需要先转换为字符串age =30print("年龄:"+str(age))# 年龄:30# 使用+=运算符message ="Hello, "message +="World!"print(message)# Hello, World!

2. 字符串重复

可以使用*运算符重复字符串:

# 字符串重复示例print("*"*10)# **********print("Hello"*3)# HelloHelloHelloprint("-="*10)# -= -= -= -= -= -= -= -= -= -= 

3. 字符串长度

可以使用len()函数获取字符串的长度:

# 字符串长度示例text ="Hello, World!"print(len(text))# 13# 空字符串的长度print(len(""))# 0# 包含Unicode字符的字符串print(len("你好,世界!"))# 5

4. 字符串成员检查

可以使用innot in运算符检查字符或子串是否在字符串中:

# 字符串成员检查示例text ="Python Programming"print("P"in text)# Trueprint("python"in text)# False(区分大小写)print("Programming"in text)# Trueprint("Java"notin text)# True

六、字符串的常用方法

Python提供了丰富的字符串方法,以下是一些最常用的方法:

1. 大小写转换

# 大小写转换方法text ="Hello, World!"# 转换为大写print(text.upper())# HELLO, WORLD!# 转换为小写print(text.lower())# hello, world!# 首字母大写,其他小写print(text.capitalize())# Hello, world!# 每个单词的首字母大写print(text.title())# Hello, World!# 大小写反转print(text.swapcase())# hELLO, wORLD!# 判断是否为大写print(text.isupper())# False# 判断是否为小写print(text.islower())# False# 判断是否为首字母大写print(text.istitle())# Falseprint(text.title().istitle())# True

2. 字符串查找

# 字符串查找方法text ="Python Programming"# find():返回子串第一次出现的索引,未找到返回-1print(text.find("Pro"))# 7print(text.find("Java"))# -1print(text.find("o"))# 4print(text.find("o",5))# 8(从索引5开始查找)# rfind():返回子串最后一次出现的索引,未找到返回-1print(text.rfind("o"))# 8# index():返回子串第一次出现的索引,未找到抛出ValueErrortry:print(text.index("Pro"))# 7print(text.index("Java"))except ValueError as e:print(f"错误:{e}")# 错误:substring not found# rindex():返回子串最后一次出现的索引,未找到抛出ValueErrorprint(text.rindex("o"))# 8

3. 字符串替换

# 字符串替换方法text ="Hello, World!"# replace():替换子串print(text.replace("World","Python"))# Hello, Python!# 指定替换次数print(text.replace("l","X",1))# HeXlo, World!(只替换第一个"l")# 替换多个不同的子串text2 ="Python is great. Python is powerful."print(text2.replace("Python","Java"))# Java is great. Java is powerful.# 使用translate()方法进行字符映射替换# 创建映射表(将"aeiou"替换为"12345")trans =str.maketrans("aeiou","12345")print("Hello World".translate(trans))# H2ll4 W4rld

4. 字符串分割和连接

# 字符串分割方法text ="Hello, World, Python"# split():按指定分隔符分割字符串print(text.split(", "))# ['Hello', 'World', 'Python']print(text.split("o"))# ['Hell', ', W', 'rld, Pyth', 'n']# 指定分割次数print(text.split(", ",1))# ['Hello', 'World, Python']# rsplit():从右边开始分割print(text.rsplit(", ",1))# ['Hello, World', 'Python']# splitlines():按换行符分割text2 ="Hello\nWorld\nPython"print(text2.splitlines())# ['Hello', 'World', 'Python']print(text2.splitlines(True))# ['Hello\n', 'World\n', 'Python'](保留换行符)# partition():按第一个出现的分隔符分割为三部分print(text.partition(", "))# ('Hello', ', ', 'World, Python')# rpartition():按最后一个出现的分隔符分割为三部分print(text.rpartition(", "))# ('Hello, World', ', ', 'Python')# 字符串连接方法words =['Hello','World','Python']# join():将列表中的字符串连接成一个字符串print(", ".join(words))# Hello, World, Pythonprint("-".join(words))# Hello-World-Pythonprint("".join(words))# HelloWorldPython

5. 字符串去除

# 字符串去除方法text ="   Hello, World!   "# strip():去除字符串两端的空白字符print(text.strip())# Hello, World!# lstrip():去除字符串左端的空白字符print(text.lstrip())# Hello, World!   # rstrip():去除字符串右端的空白字符print(text.rstrip())#    Hello, World!# 去除指定字符print("***Hello***".strip("*"))# Helloprint("---Hello+++".strip("-+"))# Hello

6. 字符串判断

# 字符串判断方法# 数字判断print("123".isdigit())# Trueprint("123a".isdigit())# Falseprint("12.3".isdigit())# False# 字母判断print("abc".isalpha())# Trueprint("abc123".isalpha())# False# 字母或数字判断print("abc123".isalnum())# Trueprint("abc123!@#".isalnum())# False# 小写字母判断print("abc".islower())# Trueprint("Abc".islower())# False# 大写字母判断print("ABC".isupper())# Trueprint("Abc".isupper())# False# 标题格式判断print("Hello World".istitle())# Trueprint("hello World".istitle())# False# 空格判断print("   ".isspace())# Trueprint("  a  ".isspace())# False# 开头判断print("Hello World".startswith("Hello"))# Trueprint("Hello World".startswith("Hi"))# Falseprint("Hello World".startswith("World",6))# True(从索引6开始)# 结尾判断print("Hello World".endswith("World"))# Trueprint("Hello World".endswith("Hello"))# Falseprint("Hello World".endswith("llo",0,5))# True(在索引0-5范围内)

七、字符串格式化

字符串格式化用于将变量插入到字符串中,Python提供了多种字符串格式化方法。

1. %格式化

%格式化是Python早期的字符串格式化方法,使用%运算符:

# %格式化示例name ="张荣殿"age =30height =1.75# %s:字符串# %d:整数# %f:浮点数print("姓名:%s"% name)# 姓名:张荣殿print("年龄:%d岁"% age)# 年龄:30岁print("身高:%.2f米"% height)# 身高:1.75米# 多个变量print("姓名:%s,年龄:%d岁,身高:%.2f米"%(name, age, height))# 姓名:张荣殿,年龄:30岁,身高:1.75米# 字典格式化person ={"name":"张荣殿","age":30}print("姓名:%(name)s,年龄:%(age)d岁"% person)# 姓名:张荣殿,年龄:30岁

2. format()方法

format()方法是Python 3引入的更灵活的字符串格式化方法:

# format()方法示例name ="张荣殿"age =30height =1.75# 基本用法print("姓名:{}".format(name))# 姓名:张荣殿print("年龄:{}岁".format(age))# 年龄:30岁print("身高:{:.2f}米".format(height))# 身高:1.75米# 多个变量print("姓名:{},年龄:{}岁,身高:{:.2f}米".format(name, age, height))# 姓名:张荣殿,年龄:30岁,身高:1.75米# 位置参数print("{0},{1},{0}".format("Hello","World"))# Hello, World, Hello# 关键字参数print("姓名:{name},年龄:{age}岁".format(name="张荣殿", age=30))# 姓名:张荣殿,年龄:30岁# 字典解包person ={"name":"张荣殿","age":30}print("姓名:{name},年龄:{age}岁".format(**person))# 姓名:张荣殿,年龄:30岁# 格式化选项print("{:10}".format("Hello"))# Hello     (宽度为10)print("{:<10}".format("Hello"))# Hello     (左对齐)print("{:>10}".format("Hello"))#     Hello  (右对齐)print("{:^10}".format("Hello"))#   Hello   (居中对齐)print("{:+d}".format(10))# +10 (显示正号)print("{:05d}".format(10))# 00010(前补零)print("{:,}".format(1234567))# 1,234,567(千位分隔符)

3. f-string(Python 3.6+)

f-string是Python 3.6引入的一种简洁、高效的字符串格式化方法,使用fF前缀:

# f-string示例(需要Python 3.6+)name ="张荣殿"age =30height =1.75# 基本用法print(f"姓名:{name}")# 姓名:张荣殿print(f"年龄:{age}岁")# 年龄:30岁print(f"身高:{height:.2f}米")# 身高:1.75米# 多个变量print(f"姓名:{name},年龄:{age}岁,身高:{height:.2f}米")# 姓名:张荣殿,年龄:30岁,身高:1.75米# 表达式print(f"{age}年后的年龄:{age +10}岁")# 30年后的年龄:40岁print(f"{name}的长度:{len(name)}个字符")# 张荣殿的长度:3个字符# 函数调用print(f"姓名大写:{name.upper()}")# 姓名大写:张荣殿# 格式化选项print(f"{name:10}")# 张荣殿       (宽度为10)print(f"{name:<10}")# 张荣殿       (左对齐)print(f"{name:>10}")#       张荣殿  (右对齐)print(f"{name:^10}")#    张荣殿     (居中对齐)print(f"{10:+d}")# +10 (显示正号)print(f"{10:05d}")# 00010(前补零)print(f"{1234567:,}")# 1,234,567(千位分隔符)# 嵌套f-stringprint(f"{f'{name}的年龄是{age}岁':^30}")#        张荣殿的年龄是30岁        (居中对齐,总宽度30)

八、转义字符

转义字符用于表示字符串中无法直接输入的字符,使用反斜杠\开头:

转义字符
描述
\n
换行符
\t
制表符
\r
回车符
\b
退格符
\f
换页符
\'
单引号
\"
双引号
\\
反斜杠
\xhh
十六进制表示的字符
\uhhhh
十六进制表示的Unicode字符
\Uhhhhhhhh
十六进制表示的Unicode字符(扩展)
# 转义字符示例print("Hello\nWorld")# 换行print("Hello\tWorld")# 制表符print("Hello\rWorld")# 回车(替换当前行)print("Hello\bWorld")# 退格(删除前一个字符)print("He said, \"Hello!\"")# 双引号print("I\'m happy")# 单引号print("C:\\Users\\Name")# 反斜杠print("\x41")# 十六进制转义(A)print("\u4f60\u597d")# Unicode转义(你好)

九、原始字符串

原始字符串(Raw String)用于忽略转义字符,使用rR前缀:

# 原始字符串示例print("C:\\Users\\Name")# C:\Users\Nameprint(r"C:\Users\Name")# C:\Users\Name(原始字符串)# 正则表达式中常用原始字符串import repattern =r"\d+"# 匹配数字text ="年龄:30岁"print(re.findall(pattern, text))# ['30']# 原始字符串的最后一个字符不能是反斜杠(除非是偶数个)# print(r"C:\Users\Name\")  # 错误:invalid raw string escapeprint(r"C:\Users\Name\\\")# C:\Users\Name\(使用偶数个反斜杠)

十、Unicode和字符串编码

1. Unicode

Python 3中的字符串默认使用Unicode编码,可以表示世界上所有语言的字符:

# Unicode字符串示例print("Hello World")# 英文print("你好,世界!")# 中文print("こんにちは")# 日文print("안녕하세요")# 韩文print("Привет")# 俄文print("مرحبا")# 阿拉伯文print("😀🎉")# 表情符号

2. 字符串编码和解码

字符串可以编码为字节序列(bytes),字节序列也可以解码为字符串:

# 字符串编码和解码示例text ="你好,世界!"# 编码为字节序列bytes_utf8 = text.encode("utf-8")bytes_gbk = text.encode("gbk")print(bytes_utf8)# b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'print(bytes_gbk)# b'\xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7\xa3\xa1'# 解码为字符串print(bytes_utf8.decode("utf-8"))# 你好,世界!print(bytes_gbk.decode("gbk"))# 你好,世界!# 错误处理bytes_wrong =b'\xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7\xa3\xa1'try:print(bytes_wrong.decode("utf-8"))except UnicodeDecodeError as e:print(f"解码错误:{e}")# 使用错误处理参数print(bytes_wrong.decode("utf-8", errors="replace"))# ���界!print(bytes_wrong.decode("utf-8", errors="ignore"))# 界!print(bytes_wrong.decode("utf-8", errors="backslashreplace"))# \xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7\xa3\xa1

十一、字符串的高级操作

1. 列表推导式处理字符串

可以使用列表推导式对字符串进行复杂操作:

# 列表推导式处理字符串示例text ="Hello, World!"# 将字符串转换为字符列表chars =[for c in text]print(chars)# ['H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']# 过滤字符letters =[for c in text if c.isalpha()]print(letters)# ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']# 转换大小写lower_text =[c.lower()for c in text]print(lower_text)# ['h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!']# 过滤和转换filtered =[c.upper()for c in text if c.isalnum()]print(filtered)# ['H', 'E', 'L', 'L', 'O', 'W', 'O', 'R', 'L', 'D']# 字符串拼接print("".join(filtered))# HELLOWORLD

2. 正则表达式

正则表达式用于匹配和处理字符串中的模式,Python的re模块提供了正则表达式支持:

# 正则表达式示例import retext ="联系电话:13812345678,邮箱:example@example.com"# 匹配手机号码phone_pattern =r"1[3-9]\d{9}"phones = re.findall(phone_pattern, text)print(phones)# ['13812345678']# 匹配邮箱email_pattern =r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"emails = re.findall(email_pattern, text)print(emails)# ['example@example.com']# 替换字符串new_text = re.sub(phone_pattern,"[电话号码]", text)print(new_text)# 联系电话:[电话号码],邮箱:example@example.com# 分割字符串text2 ="Hello  World\tPython"print(re.split(r"\s+", text2))# ['Hello', 'World', 'Python']# 编译正则表达式(提高性能)pattern = re.compile(r"\d+")text3 ="年龄:30岁,体重:70kg"print(pattern.findall(text3))# ['30', '70']

十二、字符串的最佳实践

1. 选择合适的字符串创建方式

  • 对于单行字符串,使用单引号或双引号都可以
  • 对于多行字符串,使用三引号
  • 当字符串中包含引号时,选择另一种引号或使用转义字符

2. 优先使用f-string

在Python 3.6+中,优先使用f-string,因为它更简洁、更高效:

# 好的写法name ="张荣殿"age =30print(f"{name}今年{age}岁。")# 不好的写法print(name +"今年"+str(age)+"岁。")print("%s今年%d岁。"%(name, age))print("{}今年{}岁。".format(name, age))

3. 避免修改字符串

由于字符串是不可变的,频繁修改字符串会创建大量临时对象,影响性能。可以使用列表或io.StringIO来构建字符串:

# 不好的写法result =""for i inrange(1000):    result +=str(i)# 好的写法parts =[]for i inrange(1000):    parts.append(str(i))result ="".join(parts)# 使用io.StringIOfrom io import StringIObuffer= StringIO()for i inrange(1000):buffer.write(str(i))result =buffer.getvalue()

4. 使用字符串方法而不是手动实现

Python的字符串方法经过优化,性能更好:

# 不好的写法defis_palindrome(text):    reversed_text =""for c in text:        reversed_text = c + reversed_textreturn text == reversed_text# 好的写法defis_palindrome(text):return text == text[::-1]

5. 注意字符串的编码问题

  • 在处理文件或网络数据时,始终指定编码
  • 使用UTF-8作为默认编码
  • 避免混合使用不同的编码
# 好的写法withopen("file.txt","r", encoding="utf-8")as f:    content = f.read()# 好的写法response = requests.get("https://example.com")content = response.content.decode("utf-8")

十三、总结

Python字符串是一种强大、灵活的数据类型,具有以下特点:

  1. 不可变性
    :字符串创建后不能修改
  2. 丰富的操作
    :支持索引、切片、拼接、重复等基本操作
  3. 强大的方法
    :提供了大量的字符串处理方法
  4. 多种格式化
    :支持%、format()、f-string等格式化方式
  5. Unicode支持
    :可以处理各种语言的字符
  6. 正则表达式
    :支持复杂的字符串模式匹配

通过掌握Python字符串的特性和操作方法,可以高效地处理各种文本数据,编写简洁、优雅的代码。


发布网站:荣殿教程(zhangrongdian.com)

作者:张荣殿

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 04:17:11 HTTP/2.0 GET : https://f.mffb.com.cn/a/472405.html
  2. 运行时间 : 0.126911s [ 吞吐率:7.88req/s ] 内存消耗:4,648.82kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=b0dc27919b088c1d35fe2d9eee88fda8
  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.000533s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000711s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000261s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001801s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000490s ]
  6. SELECT * FROM `set` [ RunTime:0.000190s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000566s ]
  8. SELECT * FROM `article` WHERE `id` = 472405 LIMIT 1 [ RunTime:0.002944s ]
  9. UPDATE `article` SET `lasttime` = 1770495431 WHERE `id` = 472405 [ RunTime:0.001755s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.001856s ]
  11. SELECT * FROM `article` WHERE `id` < 472405 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000466s ]
  12. SELECT * FROM `article` WHERE `id` > 472405 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000781s ]
  13. SELECT * FROM `article` WHERE `id` < 472405 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004063s ]
  14. SELECT * FROM `article` WHERE `id` < 472405 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.013097s ]
  15. SELECT * FROM `article` WHERE `id` < 472405 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007434s ]
0.128537s