Como você puxa os primeiros 100 caracteres de uma string em PHP

92

Estou procurando uma maneira de extrair os primeiros 100 caracteres de uma variável de string para colocar em outra variável para impressão.

Existe uma função que pode fazer isso facilmente?

Por exemplo:

$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

Para obter:

I am looking for a way to pull the first 100 characters from a string vari
JoshFinnie
fonte
A melhor pergunta seria: como você puxa / seleciona os primeiros n caracteres de uma string?
rahim.nagori

Respostas:

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

Para String Manipulation, aqui está uma página com muitas funções que podem ajudá-lo em seu trabalho futuro.

Patrick Desjardins
fonte
2
há problema em retornar texto em árabe, pois são palavras com letras combinadas se o segundo parâmetro (100) não estiver no final das palavras em árabe na última contagem de 100 ele retornará nulo. para isso usaremos (mb_substr ($ big, 0,100)
SAR
39

Você poderia usar substr, eu acho:

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

ou mb_substr para strings multibyte:

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

Você pode criar uma função que usa esta função e anexa, por exemplo, '...'para indicar que foi encurtada. (Acho que já há uma centena de respostas semelhantes quando isso é postado ...)

Stein G. Strindhaug
fonte
23

Uma resposta tardia, mas útil, o PHP tem uma função específica para esse propósito.

mb_strimwidth

$string = mb_strimwidth($string, 0, 100);
$string = mb_strimwidth($string, 0, 97, '...'); //optional characters for end
Coz
fonte
2
Bom 1 ... Muito útil. +1
RJParikh
21
$ x = '1234567';

substr de eco ($ x, 0, 3); // gera 123

substr de eco ($ x, 1, 1); // produz 2

substr de eco ($ x, -2); // produz 67

eco substr ($ x, 1); // saídas 234567

substr de eco ($ x, -2, 1); // saídas 6
Markus
fonte
1
Obrigado. Isso resume bem as variáveis ​​da função substr ()!
JoshFinnie
Eu tenho 128.82em uma string e quero separar 100e28.82
Moeez
18

tente esta função

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);
}
Kostis
fonte
2

Sem funções internas do 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);
joan16v
fonte