替换PHP文件中的行范围

替换PHP文件中的行范围,php,arrays,string,file,replace,Php,Arrays,String,File,Replace,我已经做了一段时间了,我尝试了许多不同的“替换之间,针/干草堆”方法和函数,但是在我的文本文件中,我希望只删除第1-33行,保留其余的文件数据 我试过用这个 function replace_all_text_between($str, $start, $end, $replacement) { $replacement = $start . $replacement . $end; $start = preg_quote($start, '/'); $end = p

我已经做了一段时间了,我尝试了许多不同的“替换之间,针/干草堆”方法和函数,但是在我的文本文件中,我希望只删除第1-33行,保留其余的文件数据

我试过用这个

function replace_all_text_between($str, $start, $end, $replacement) {

    $replacement = $start . $replacement . $end;

    $start = preg_quote($start, '/');
    $end = preg_quote($end, '/');
    $regex = "/({$start})(.*?)({$end})/";

    return preg_replace($regex,$replacement,$str);
}

$myfile = file_get_contents('/usr/local/www/site.com/serve/recentImage1.txt');

$string = '------WebKitFormBoundaryDy3HUVBjHmCBUyXm
Content-Disposition: form-data; name="id"

c31
------WebKitFormBoundaryDy3HUVBjHmCBUyXm
Content-Disposition: form-data; name="created"

2021-05-21T00:51:22.555Z
------WebKitFormBoundaryDy3HUVBjHmCBUyXm
Content-Disposition: form-data; name="modified"

2021-05-21T00:51:22.555Z
------WebKitFormBoundaryDy3HUVBjHmCBUyXm
Content-Disposition: form-data; name="pings"

[object Object]
------WebKitFormBoundaryDy3HUVBjHmCBUyXm
Content-Disposition: form-data; name="fullname"

You
------WebKitFormBoundaryDy3HUVBjHmCBUyXm
Content-Disposition: form-data; name="profile_picture_url"

/images/avatars/8cc11eb4cb12c3d7e00abfba341c30b32ced49be_thumb.jpg
------WebKitFormBoundaryDy3HUVBjHmCBUyXm
Content-Disposition: form-data; name="created_by_current_user"

true
------WebKitFormBoundaryDy3HUVBjHmCBUyXm
Content-Disposition: form-data; name="attachments_to_be_created"; filename="dbresult 2.png"
Content-Type: image/png';

echo replace_all_text_between($string, '------WebKitFormBoundaryDy3HUVBjHmCBUyXm', 'Content-Type:', 'REMOVED'); // (hey) how it (hey) here{
这就是我尝试过的。$string变量包含流式传输的内容,并将其放入带有file\u put\u contents()的PNG文件中

如何简单地删除这一范围的第1行-第33行保存原始文件


非常感谢您的帮助

如果我理解正确,您希望从文件或字符串中删除一些行。如果知道行号,则不需要搜索和替换。这是我的解决方案

function remove_lines($content, $from, $to){
    $array = explode("\n", $content);
    array_splice($array, $from - 1, $to - 1);
    return implode("\n", $array);
}

$content = file_get_contents('test.txt'); // or other methods to get the file content
$newContent = remove_lines($content, 1, 34);

请注意,在我的方法中,
$from
是包含的,而
$to
是独占的。

您是否尝试过使用?file()-在目标文件上强制使用关联数组的最佳方法。在本例中,它将90%的数据转换为一个单键数组,这里不适用。回答被接受。谢谢。这就是我们想要的:)@WLFree非常欢迎:)