php写文件-PHP 文件处理

2023-08-21 0 7,984 百度已收录

PHP 文件处理

fopen() 函数用于在 PHP 中打开文件。

打开一个文件

fopen() 函数用于在 PHP 中打开文件。

该函数的第一个参数是要打开的文件的名称,第二个参数指定使用哪种模式打开文件:

文件可以通过以下模式打开:

模式描述

只读。 从文件的开头开始。

r+

读/写。 从文件的开头开始。

写吧。 打开并清空文件内容; 如果不存在则创建一个新文件。

瓦+

读/写。 打开并清空文件内容; 如果不存在则创建一个新文件。

附加。 打开并写入文件末尾,如果不存在则创建一个新文件。

一个+

读取/追加。 通过写入文件末尾来保留文件内容。

写吧。 创建一个新文件。 如果文件已存在,则返回 FALSE 并出现错误。

x+

读/写。 创建一个新文件。 如果文件已存在,则返回 FALSE 并出现错误。

注意:如果fopen()函数无法打开指定的文件,则返回0(假)。

例子

如果 fopen() 函数无法打开指定文件,以下示例将生成一条消息:

关闭文件

fclose() 函数用于关闭打开的文件:

检测文件结尾 (EOF)

feof() 函数检查是否已到达文件结尾 (EOF)。

feof() 函数在循环未知宽度的数据时非常有用。

注意:在 w、a 和 x 模式下php写文件php写文件,您无法读取打开的文件!

if (feof($file)) echo "文件结束";

逐行读取文件

fgets() 函数用于从文件中逐行读取文件。

注意:调用该函数后,文件指针将连接到下一行。

例子

以下示例逐行读取文件,直到文件末尾:

逐字符读取文件

fgetc() 函数用于从文件中逐字符读取文件。

注意:调用该函数后,文件指针将连接到下一个字符。

例子

以下示例逐字符读取文件,直到文件末尾:

PHP 文件系统参考指南

有关 PHP 文件系统功能的完整参考指南,请访问我们的 PHP 文件系统参考指南。

PHP程序必须读取和优化的方式

1.如果一个方法可以静态声明,就可以静态声明,速度可以提高4倍。

2.echo比打印快。

3、使用echo的多个参数(这个翻译:指的是冒号而不是句号)来代替字符串连接。

4、执行for循环之前先确定最大循环次数,不要每次循环都估计最大值。

5.取消这些未使用的变量,尤其是大字段,以方便释放显存。

6.尽量避免使用__get、__set、__autoload。

7. require_once() 很昂贵。

php写文件-PHP 文件处理

8. 包含文件时使用完整路径,解析操作系统路径所需的时间更少。

9、如果你想知道脚本开始执行的时间(这个翻译:即服务器收到客户端请求),最好使用$_server['request_time']而不是time()。

10、函数替换正则表达式,完成同样的功能。

11. str_replace函数比preg_replace函数更快,但strtr函数比str_replace函数效率高四倍。

12.如果字符串替换函数可以接受链表或者字符作为参数,并且参数粗细也不太长,那么可以考虑额外写一段替换代码,这样每次都将参数作为字符传递,而不是只写一行代码接受链表作为参数进行查询和替换。

13、使用替代分支语句(本译:switchcase)比使用多个if、elseif语句更好。

14.使用@来阻止错误消息效率非常低。

15、打开apache的mod_deflate模块。

16、数据库连接使用完毕后应关闭。

17、$row['id']的效率是$row[id]的7倍。

18. 错误信息的代价是高昂的。

19. 尽量不要在for循环中使用函数,例如for($x=0;$x <count($array);$x)每循环一次就会调用count()函数。

20.方法中增加局部变量,速度最快。 几乎与在函数中调用局部变量一样快。

21. 递增全局变量比递增局部变量慢 2 倍。

22. 增加一个对象属性(例如:$this->prop++)比增加一个局部变量慢3倍。

23. 递增未定义的局部变量比递增预定义的局部变量慢 9 到 10 倍。

php写文件-PHP 文件处理

24. 仅定义局部变量而不在函数中调用它也会降低速度(与递增局部变量的程度相同)。 PHP 将检查是否存在全局变量。

25.方法调用似乎与类中定义的方法数量无关,因为我添加了10个方法(测试方法之前和之后),但性能没有变化。

26. 派生类中的方法比子类中定义的相同技术运行得更快。

27. 调用一个带有一个参数的空函数需要 7-8 个局部变量增量。 以类似方式调用所花费的时间接近 15 次局部变量增量操作。

28. 使用单冒号而不是双冒号来包围字符串,这样会更快。 由于 php 将搜索双冒号包围的字符串中的变量,因此单冒号不会。 事实上,只有当不需要在字符串中包含变量时才可以这样做。

29、输出多个字符串时,使用冒号代替句点来分隔字符串,这样速度更快。 注意:只有echo可以做到这一点,它是一个可以接受多个字符串作为参数的“函数”(这个翻译:php指南说echo是一种语言结构,而不是真正的函数,所以函数加了双冒号) 。

30. apache解析php脚本的时间比解析静态html页面慢2到10倍。 尽量使用静态html页面,少用脚本。

31.除非脚本可以缓存,否则每次调用都会重新编译。 引入php缓存机制一般可以提高25%到100%的性能,以降低编译成本。

php写文件-PHP 文件处理

32.尝试做缓存,可以使用memcached。 memcached 是一个高性能视频内存对象缓存系统,可用于加速动态 Web 应用程序并减少数据库负载。 操作码的缓存很有用,这样就不必为每个请求重新编译脚本。

33、当操作一个字符串,需要检查其粗细是否满足一定要求时,你会贸然使用strlen()函数。 这个函数执行得相当快,因为​​它不做任何计算,它只是返回存储在 zval 结构(c 的外部数据结构,用于存储 php 变量)中的已知字符串粗细。 而且,因为strlen()是一个函数,所以会有些慢,因为函数调用会经过很多步骤,比如字母的大小写(这个翻译:指函数名的大小写,PHP不区分大小写)函数名),哈希查找,将与被调用的函数一起执行。 在极少数情况下,您可以使用 isset() 方法来加快代码的执行速度。

示例如下:

if(strlen($foo)<5){echo "fooistooshort";}

与下面的方法比较:

if(!isset($foo{5})){echo "fooistooshort";}

调用 isset() 恰好比 strlen() 更快,因为与前者不同php大小写,isset() 是一种语言构造,这意味着它的执行不需要函数查找和字母大写。 也就是说,您实际上并没有在检查字符串宽度的顶层代码中花费太多开销。

34. 当递增或递减变量$i时,$i++会比++$i慢。 这些差异是 php 特定的,不适用于其他语言,因此请不要更改您的 c 或 java 代码并期望它们立即更快,这是行不通的。 ++$i 更快,因为它只需要 3 条指令(操作码),而 $i++ 需要 4 条指令。 预递增实际上形成一个临时变量,然后再递增。 后自增直接在原值上自增。 这是一种优化,就像 Zend 的 PHP 优化器所做的那样。 记住这种优化是个好主意,因为并非所有的运算优化器都会进行相同的优化,但有很多 ISP 和服务器没有安装运算优化器。

35、不一定要面向对象(oop),面向对象往往很昂贵,而且每次方法和对象调用都会消耗大量显存。

36、不一定要用类来实现所有的数据结构,链表也很有用。

37.不要把方法细分太多,仔细想想你真正要复用的代码是什么?

38. 当你需要的时候php大小写,你总是可以将代码分解为方法。

39. 尽量使用大量的php外部函数。

40、如果代码中有大量耗时函数,可以考虑以c扩展的形式实现。

41. 分析您的代码。 检查器会告诉您代码的哪一部分花费了多少时间。 xdebug调试器包含检查程序,评估检查可以显示代码总体的难点。

42. mod_zip可以作为apache模块来即时压缩你的数据,使数据传输量提高80%。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php php写文件-PHP 文件处理 https://www.wkzy.net/game/139246.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务