开发者

How can we split a sentence

I have written the PHP code for getting som开发者_如何学JAVAe part of a given dynamic sentence, e.g. "this is a test sentence":

substr($sentence,0,12);

I get the output:

this is a te

But i need it stop as a full word instead of splitting a word:

this is a

How can I do that, remembering that $sentence isn't a fixed string (it could be anything)?


use wordwrap


If you're using PHP4, you can simply use split:

$resultArray = split($sentence, " ");

Every element of the array will be one word. Be careful with punctuation though.

explode would be the recommended method in PHP5:

$resultArray = explode(" ", $sentence);


first. use explode on space. Then, count each part + the total assembled string and if it doesn't go over the limit you concat it onto the string with a space.


Try using explode() function.

In your case:

$expl = explode(" ",$sentence);

You'll get your sentence in an array. First word will be $expl[0], second - $expl[1] and so on. To print it out on the screen use:

$n = 10 //words to print
for ($i=0;$i<=$n;$i++) {
  print $expl[$i]." ";
}


Create a function that you can re-use at any time. This will look for the last space if the given string's length is greater than the amount of characters you want to trim.

function niceTrim($str, $trimLen) {
    $strLen = strlen($str);
    if ($strLen > $trimLen) {
        $trimStr = substr($str, 0, $trimLen);
        return substr($trimStr, 0, strrpos($trimStr, ' '));
    }
    return $str;
}

$sentence = "this is a test sentence";
echo niceTrim($sentence, 12);

This will print

this is a

as required.

Hope this is the solution you are looking for!


this is just psudo code not php,

char[] sentence="your_sentence";
string new_constructed_sentence="";
string word="";
for(i=0;i<your_limit;i++){
character=sentence[i];
if(character==' ') {new_constructed_sentence+=word;word="";continue}
word+=character;
}

new_constructed_sentence is what you want!!!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜