我正在寻找一种非常有效的方法来分割字符串并返回两个部分。
我需要分割的字符串长度为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行之后拆分字符串,这怎么容易完成?
答案 0 :(得分:3)
答案 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);
}