Php substr整个单词

时间:2010-11-27 14:32:32

标签: php

我如何从$ xbio中获取20个字符并获得完整的单词?

$xbio = 'word1 ord2 word3 word4 and so on';
echo ''.substr($xbio, 0, 20).'...';

TY

找到这个搜索stackoverflow - 请告诉我你的想法:

<? $xbio = preg_replace('/\s+?(\S+)?$/', '', substr($xbio, 0, 50)); ?>

3 个答案:

答案 0 :(得分:1)

这是我一直使用的功能:

# advanced substr
function gen_string($string,$min) {
    $text = trim(strip_tags($string));
    if(strlen($text)>$min) {
        $blank = strpos($text,' ');
        if($blank) {
            # limit plus last word
            $extra = strpos(substr($text,$min),' ');
            $max = $min+$extra;
            $r = substr($text,0,$max);
            if(strlen($text)>=$max) $r=trim($r,'.').'...';
        } else {
            # if there are no spaces
            $r = substr($text,0,$min).'...';
        }
    } else {
        # if original length is lower than limit
        $r = $text;
    }
    return $r;
}

答案 1 :(得分:0)

preg_match('/^([a-zA-Z0-9 ]{1,20})\\b/', $xbio, $matches);
echo $matches[1];

答案 2 :(得分:0)

这是我用于此类任务的功能:

function truncate($str, $maxLength, $append = '...') {
    if (strlen($str) > $maxLength) {
        $str = substr($str, 0, $maxLength);
        $str = preg_replace('/\s+.*?$/', '', $str); // this line is important for you
        $str = trim($str);
        $str .= $append:
    }

    return $str;
}