当前位置: 首页 > 面试题库 >

在PHP中读取文件时如何节省内存?

秦德海
2023-03-14
问题内容

我有一个200kb的文件,可以在多个页面中使用,但是在每个页面上我只需要该文件的1-2行,那么如果我知道行号,该如何只读取这些行呢?

例如,如果我只需要第十行,那么我就不想将所有行(仅第十行)加载到内存中。

对不起,我的英语不好!


问题答案:

除非您知道该行的偏移量,否则您将需要读取该点之前的每一行。您可以通过使用循环遍历文件来丢弃旧的行(不需要的行)fgets()

可能更好的解决方案是使用数据库,因为数据库引擎将完成存储字符串的繁琐工作,并允许您(非常有效地)获得特定的“行”(不是行,而是一条记录一个数字ID,但实际上是一样的),而不必先读取记录。



 类似资料:
  • 问题内容: 我想读取CSV文件并使用AngularJS和HTML5获取其内容。我想将csv文件的内容放在$ scope中。 我的HTML中有此代码 问题答案: 使用自定义指令: http://plnkr.co/edit/eeQbR65oE8iljm7ueGhX?p=preview

  • 问题内容: 我正在尝试在Android应用程序中获取文件内容(以字节为单位)。我已经在SD卡中获取了文件,现在想获取选定的文件(以字节为单位)。我用谷歌搜索,但没有成功。请帮忙 以下是获取带有扩展名的文件的代码。通过这个,我得到文件并显示在微调器中。在文件选择上,我想以字节为单位获取文件。 问题答案: 这很简单: 在manifest.xml中添加权限:

  • 假设我有一个256 KB的文件存储在HDFS文件系统中的一个节点(作为两个块,每个块128 KB)。该文件内部包含两个块,每个块128 KB。假设我有两个节点集群,每个节点只有1个核心。我的理解是,转换过程中的spark将读取内存中一个节点上的完整文件,然后将一个文件块内存数据传输到另一个节点,以便两个节点/核心可以并行执行它?那是正确的吗? 如果两个节点都有两个核心,而不是一个核心呢?在这种情况

  • 问题内容: 我想将文件读入Java的String中,一次x个字符。然后,我将对字符串进行某些操作,并希望从我中断的地方继续。我该怎么办? 编辑: 目标文件是一个简单的文本文件。 问题答案: 好吧,首先您需要区分 字节 和 字符 。您可以一次从一定数量的字节中读取(作为最大数量;不能保证您将获得所需的所有字节),并且一次可以读取多个字符(再次,最大)。 听起来您 可能 想要在周围使用,指定适当的字符

  • 问题内容: 是否可以在AngularJS中读取文件?我想将文件放入HTML5画布进行裁剪。 我在考虑使用指令吗?这是我要放入指令中的javascript代码: 问题答案: 是的,指令是正确的方法,但看起来有些不同: 工作示例:http : //plnkr.co/edit/y5n16v?p=preview 感谢lalalalalmbda提供此链接。