PHP如此多的字符后如何将字符串拆分为两位?

时间:2012-05-22 20:47:01

标签: php string file

我正在寻找一种非常有效的方法来分割字符串并返回两个部分。

我需要分割的字符串长度为893,004个字符,字符串中的每一行长度为163个字符,我想在100行之后将其拆分。

使用正则表达式从文件中获取的字符串文件的快速表示

'/[a-z0-9]{40}/i' '/[a-z0-9]{40}/i' '/[a-z0-9]{40}/i' '/[a-z0-9]{40}/i' // 163 characters
'/[a-z0-9]{40}/i' '/[a-z0-9]{40}/i' '/[a-z0-9]{40}/i' '/[a-z0-9]{40}/i' // 163 characters
'/[a-z0-9]{40}/i' '/[a-z0-9]{40}/i' '/[a-z0-9]{40}/i' '/[a-z0-9]{40}/i' // 163 characters

依此类推,大声笑,

我尝试在100行之后拆分字符串,

// FILE CONTENTS
$content = file_get_contents($file);
// GET PARSER GXDE
$split = preg_split('/^[a-z0-9\s]{16300}$/i', $content, 1); // REGEX DOESNT WORK
var_dump($split[0]);

我只是想在文件中的100行之后拆分字符串,这怎么容易完成?

2 个答案:

答案 0 :(得分:3)

我只需使用file()将文件行作为数组或fgets()来逐行提取文件。这将允许您使用简单的计数器以适当的行数打破文件。

答案 1 :(得分:0)

如果你不需要,你真的不应该使用正则表达式。正则表达式是一个相对昂贵的操作,如果你使用正则表达式来获得一个固定长度的字符串,这只是浪费处理。

“100行后拆分字符串”并不清楚你的意思。这个来自the docs的改编示例将以100行的方式写出文件(如果所有行都是163个字符,包括换行符)。

$handle = @fopen("/inputfile.txt", "r");
if ($handle) {
    $i = 0;
    while (($buffer = fgets($handle, 163000)) !== false) {
        $i++;
        file_put_contents("chunk$i.txt", $buffer);
    }
    fclose($handle);
}