我正在解析纯文本电子邮件,一旦我收到了正文,我就想将其修改为第一段。
这是一个正则表达式的情况(我想从开始搜索到\n
或\r
)还是更简洁地构建到PHP中?
案文的例子可能是:
Lorem ipsum dolor坐下来,精神上的精神。前庭 dignissim,lacus ac ultricies convallis,arcu ante sodales magna,et ultrices felis velit facilisis erat。 Nam ullamcorper sagittis rhoncus。 Proin lacinia lorem in dolor condimentum,nec pretium orci interdum。 Morbi mattis,velit vel dictum efficitur,dolor nisi ullamcorper mi, eu imperdiet risus metus ut ipsum。 Pellentesque sagittis ultrices velit,at maximus mauris venenatis in.Eenean et nisi efficitur, tincidunt sapien sed,consequat quam。 Cras ornare varius justo sed 枕。
Praesent magna odio,posuere a convallis et,viverra id augue。 Pellentesque auctor,nibh nec ornare porttitor,dolor dolor lobortis justo,ut mollis tortor est eget diam。莫尔比认为,马萨会坐下来 confquat convallis,purus magna tempus nibh,vitae vehicula dui neque sollicitudin lorem。 Etiam imperdiet maximus odio,在iaculis dolor 诅咒Orci varius natoque penatibus et magnis dis parturient montes,nascetur ridiculus mus。 Sed feugiat efficitur odio vel lobortis。 Mauris pretium rhoncus velit,eu elementum nisl imperdiet 简历。 Morbi quis elit sed enim egestas aliquam。 Suspendisse facilisis ante id ipsum hendrerit,eget tincidunt arcu ullamcorper。 Nullam pellentesque efficitur nulla fermentum blandit。 Mauris et felis ornare,scelerisque velit eu,lobortis magna。 Aliquam id egestas ante, 简历uliices dui。整数tempus velit et ipsum sollicitudin ultricies。 Ut dignissim rutrum purus,在ultricies quam facilisis at。 Duis ultricies mauris ut urna pretium sollicitudin。 Sed ut sollicitudin sem。
Curabitur sed mattis metus,id hendrerit purus。 Ut sollicitudin tellus 在mi pellentesque iaculis。 Nunc eu faucibus turpis。 Duis leo elit, ornare vel urna in,volutpat malesuada ante。在diam nulla的Sed。类 每个人,每个人,每个人,每个人,每个人,每个人,每个人,每个人,每个人,每个人,每个人 inceptos himenaeos。 Mauris a nunc eros。 Mauris sed diam a purus iaculis tincidunt ut quis sapien。在turpis est.Donec mattis magna mauris,id dapibus turpis hendrerit bibendum。 Duis dapibus ante lobortis odio efficitur porta。 Morbi vitae risus mi。整数volutpat lacinia dui,non gravida massa egestas a。
我想要保存第一段,不管多长时间。
答案 0 :(得分:2)
看看explode:
array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] )
返回一个字符串数组,每个字符串都是字符串的子字符串 通过将其分割成由字符串分隔符形成的边界而形成。
答案 1 :(得分:1)
你应该使用explode function,正如@ maio290所说。你可以这样做:
$first = explode( "\n" , $yourString);
echo $first[0];
答案 2 :(得分:0)
这是一个正则表达式的情况(我想从头开始搜索直到\ n或\ r \ n)还是更简洁地构建到PHP中?
是和否。
如果您确定换行顺序,理想情况下可以使用explode
,并将limit参数设置为2。
在这种情况下正则表达式的一个优点是\R
别名,它同时代表几个换行序列。这样您就可以使用它而无需知道字符串中使用了哪种换行符序列:
if ( preg_match('~(\S.*?\R)\R~s', $text, $m) )
$text = $m[1];
但这不是唯一的方法,也可以将您的字符串作为包含fgets
的流并将auto_detect_line_endings
选项设置为{ {1}}
true