PHP得到第一段的阻止

时间:2018-01-12 13:34:09

标签: php regex

我正在解析纯文本电子邮件,一旦我收到了正文,我就想将其修改为第一段。

这是一个正则表达式的情况(我想从开始搜索到\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。

我想要保存第一段,不管多长时间。

3 个答案:

答案 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];

这是working example

答案 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