【发布时间】:2017-10-02 05:45:35
【问题描述】:
我试图从我的服务器中提取用户电子邮件地址。但问题是最大文件是.txt,但有些是CSV 带有txt 扩展名的文件。当我试图读取和提取时,我无法读取带有 TXT 扩展名的 CSV 文件。这是我的代码:
<?php
$handle = fopen('2.txt', "r");
while(!feof($handle)) {
$string = fgets($handle);
$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}/i';
preg_match_all($pattern, $string, $matches);
foreach($matches[0] as $match)
{
echo $match;
echo '<br><br>';
}
}
?>
我已尝试为此使用此代码。该程序正在读取完整的 CSV 文件,并逐行读取文本文件。有成千上万的文件,因此很难识别。
请建议我应该怎么做才能解决我的问题?有没有可以读取任何格式的解决方案,那就太棒了。
【问题讨论】:
-
还是没搞明白是什么问题?使用
fgets,您可以逐行读取任何文件 -
@AlexSlipknot 任何文件,但如果文件扩展名被更改怎么办。我在
TXT文件中有一个CSV文件。但是 CSV 文件的文件扩展名是.TXT。该程序无法读取文件,因此无法处理它。那么有没有一种方法可以读取除扩展名之外的任何文件。 -
fgets可以读取 CSV,所以可能根本就不是 CSV? -
@AlexSlipknot 它可以.... 毫无疑问。但我的程序是逐行阅读。我的文件大小为 9 GB。因此,我需要逐行读取文件。但是,CSV 文件试图一次获取所有内容,而不是逐行处理。因此,它发生了内存错误。
标签: php php-7 data-extraction php-7.1