php中的子串

时间:2011-09-09 15:42:25

标签: php substr

您好我有以下

string = "joseph daniel commented on project aadhar"

如何将上面的字符串分成4个部分,即

"joseph daniel""commented on""project""aadhar"

谢谢和问候

4 个答案:

答案 0 :(得分:1)

您可以使用爆炸功能:

explode($delimiter , $string);

因此,分隔符应为“”,$ string应为“joseph daniel对项目aadhar的评论”。

应用该函数后,您将得到一个包含句子中所有单词的数组。

Preety整洁:)

答案 1 :(得分:0)

我相信你的问题还有更多 - 例如你有句子的变化吗?如果没有,这将起作用:

$sentence = "joseph daniel commented on project aadhar";
$first = substr($sentence, 0, 13);
$second = substr($sentence, 14, 12);
$third = substr($sentence, 27, -1);

如果您想要更好的答案,则需要包含其他单词示例

答案 2 :(得分:-1)

您没有向我们提供足够的信息,但从您的评论中收集,您似乎需要从* commented on *格式的字符串中提取主题和资源。为了让你开始朝着正确的方向前进,你可以做到:

$str = 'joseph daniel commented on project aadhar';
$matches = array();
preg_match('/^(.*)\s+commented on\s+(.*)$/', $str, $matches);

这将产生一个数组:

Array
(
    [0] => joseph daniel commented on project aadhar
    [1] => joseph daniel
    [2] => project aadhar
)

$matches[1]将包含该名称,然后您可以展开或使用其他preg_match $matches[2]来挑选资源类型,例如项目,活动等等(您需要编译的资源类型列表)。我没有足够的资源类型信息,例如,如果它们可以是多个单词,那么我就可以给你了。

答案 3 :(得分:-1)

假设字符串,"评论"永远不会改变,你可以使用:

<?php
$string = "sandesh commented on institue international institute of technology";
preg_match('/(.*) commented on (.*?) (.*)/', $string, $m);
var_dump($m);
?>

结果

Array(
  0 => 'joseph daniel commented on project aadhar'
  1 => 'joseph daniel'
  2 => 'project'
  3 => 'aadhar'
)

Array(
  0 => 'sandesh commented on institue international institute of technology'
  1 => 'sandesh'
  2 => 'institue'
  3 => 'international institute of technology'
)

版主注意:此问题可能应与Doubt regarding Strtok in PHP

合并