在另一个单词后面的字符串中获取下一个单词

时间:2013-01-23 07:10:57

标签: php

我正在尝试在PHP活动系统中获取元内容,问题在于它将内容作为

  

admin写了一篇新帖子,FIRE 2天,2小时前

所以在这里,我想得到“火”这个词,但由于它是标题,它将是动态的,所以我能做的就是找到post这个词,因为它会很常见,所以我可以得到下一个词如果post,存在,则post,之后。谁能建议我怎么做?假设我们还有一个这样的内容

  

admin发布了更新2天,3小时前

它没有post,因此可以避免。

4 个答案:

答案 0 :(得分:4)

只需使用explode()方法,找到单词post的位置,然后提取下一个单词。

$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);

foreach( $pieces as $key => $value )
{
if($pieces[$key] == 'post' )
{
echo $pieces[$key+1];
break;
}
}

或专家方法:

echo $pieces[array_search('post', $pieces)+1];

答案 1 :(得分:3)

使用正则表达式

$string="admin wrote a new post, FIRE 2 days, 2 hours ago";
$result=preg_split('/post,/',$string);
if(count($result)>1){
$result_split=explode(' ',$result[1]);
print_r($result_split[1]);
}

这一个输出   火灾

LIVE DEMO

另一种方式

$string="admin wrote a new post, FIRE 2 days, 2 hours ago";
$result=preg_match_all('/(?<=(post,))(\s\w*)/',$string,$matches);
print_r($matches[0]);

Live Demo

答案 2 :(得分:1)

使用正则表达式。

$string="admin wrote a new post, FIRE 2 days, 2 hours ago";
preg_match('/(?<=post, )\S+/i', $string, $match);
echo $match[0];

希望这对你有用。

答案 3 :(得分:0)

  • 拆分字符串并放入数组
  • 获取“post”的索引
  • 获取位置索引+ 1
  • 中数组的值