删除前四行从存储在内容顶部的可变
问题描述:
我已被显示,需要前剥离出来前四行一个变量:删除前四行从存储在内容顶部的可变
Error Report Submission
From: First Last, [email protected], 12345
Date: 2009-04-16 04:33:31 pm Eastern
The content to be output starts here and can go on for any number of lines.
我需要从这个数据中去除“标头”然后将其显示为“待处理错误报告”视图的一部分。
答
嗯。我肯定有人会拿出一些漂亮的/短/更好,但如何:
$str = implode("\n", array_slice(explode("\n", $str), 4));
如果觉得太不雅观,可以随时将它抽象掉:
function str_chop_lines($str, $lines = 4) {
return implode("\n", array_slice(explode("\n", $str), $lines));
}
$str = str_chop_lines($str);
编辑:再想一想,我不会推荐使用str_chop_lines
函数,除非您计划在应用程序的许多部分执行此操作。我认为,原来的一行很清楚,任何人在str_chop_lines
上磕磕绊绊都没有意识到缺省值是4,而没有进入函数定义。
答
使用split(rex)
将字符串拆分为数组,其中rex
匹配两个连续的换行符,然后连接整个数组,除第一个元素(它是头)外。
答
Strpos帮助了很多:下面是一个例子:那么
// $myString = "blah blah \n \n \n etc \n \n blah blah";
$len = strpos($myString, "\n\n");
$string = substr($myString, $len, strlen($myString) - $len);
$字符串包含在一排发现这两个新行后的字符串。
答
$content = preg_replace("/^(.*\n){4}/", "", $content);
我相信你的第一个例子是在容易一眼,理解它的意思不是其他1线的解决方案更快。 'plus uno':P – alex 2009-04-17 00:12:20
是的,起初我认为它很丑,但我认为它很清楚它的作用。 – 2009-04-17 00:20:29