php 使用 grep 截断 preg_match

php truncate using grep preg_match

目的是通过将文件从磁盘读取为字符串(附加 \n\n),然后使用截断函数将聊天记录截断到最多 100 行(当添加每个新行时) preg_match 最多 100 行的模式和 return 该匹配项的第一个实例,然后将匹配项写入文件。

这一切都没有截断功能。 preg_match 模式在 TextWrangler 文件中正确选择。但如图所示添加截断函数会导致删除整个文本。

$existing= file_get_contents('LOG.txt') ;
// get new text-line $addnew from POST 
$addnew=$addnew."\n\n";
$newlog = $addnew.$existing ;
$newlog = truncate ( $newlog ) ;
file_put_contents('LOG.txt',$newlog);

function truncate ( $string ) {
    preg_match('#^[(.*?)\n\n]{0,100}#',$string,$match);
    if ( isset ($match[0] ) ) {
        $string=$match[0];
    }
    return  $string  ;
}

这需要什么?谢谢。

^[(.*?)\n\n]{0,100} 是一个字符 class 表示 (.*? 或 [ 中的任何 0 到 100 =16=] 或 \n.

我猜你想要:

preg_match('#^(.*?\n\n){0,100}#',$string,$match)