如何在PHP中提取字符串的前100个字符


90

我正在寻找一种从字符串变量中提取前100个字符以放入另一个变量进行打印的方法。

是否有可以轻松做到这一点的功能?

例如:

$string1 = "I am looking for a way to pull the first 100 characters from a string variable to put in another variable for printing.";
$string2 = 100charfunction($string1);
print $string2

要得到:

I am looking for a way to pull the first 100 characters from a string vari

Answers:


197
$small = substr($big, 0, 100);

对于“字符串操作”,这是一个具有很多功能的页面,可能会在将来的工作中为您提供帮助。


2
返回阿拉伯文本时会出现问题,因为如果第二个参数(100)在最后一个阿拉伯词的末尾不算完而又计数到100,则它们是带组合字母的词,它将返回null。为此,我们将使用(mb_substr($ big,0,100)
SAR

38

您可以使用substr,我想:

$string2 = substr($string1, 0, 100);

或mb_substr用于多字节字符串:

$string2 = mb_substr($string1, 0, 100);

您可以创建一个使用此函数的函数,并附加例如'...'以表明它已被缩短。(我猜这已经发布了一百份类似的回复...)


22

一个很晚但有用的答案,PHP具有专门用于此目的的功能。

mb_strimwidth

$string = mb_strimwidth($string, 0, 100);
$string = mb_strimwidth($string, 0, 97, '...'); //optional characters for end

2
好1 ...真的很有用。+1
RJParikh

21
$ x ='1234567';

echo substr($ x,0,3); //输出123

echo substr($ x,1,1); //输出2

echo substr($ x,-2); //输出67

echo substr($ x,1); //输出234567

echo substr($ x,-2,1); //输出6

1
谢谢。这样就很好地总结了substr()函数的变量!
JoshFinnie

我有128.82一个字符串,我想分开10028.82
Moeez,

18

试试这个功能

function summary($str, $limit=100, $strip = false) {
    $str = ($strip == true)?strip_tags($str):$str;
    if (strlen ($str) > $limit) {
        $str = substr ($str, 0, $limit - 3);
        return (substr ($str, 0, strrpos ($str, ' ')).'...');
    }
    return trim($str);
}

2

没有php内部功能:

function charFunction($myStr, $limit=100) {    
    $result = "";
    for ($i=0; $i<$limit; $i++) {
        $result .= $myStr[$i];
    }
    return $result;    
}

$string1 = "I am looking for a way to pull the first 100 characters from a string variable to put in another variable for printing.";

echo charFunction($string1);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.