替换PHP文件中的行范围
我已经做了一段时间了,我尝试了许多不同的“替换之间,针/干草堆”方法和函数,但是在我的文本文件中,我希望只删除第1-33行,保留其余的文件数据 我试过用这个替换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
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非常欢迎:)