¿Cómo se extraen los primeros 100 caracteres de una cadena en PHP?

91

Estoy buscando una forma de extraer los primeros 100 caracteres de una variable de cadena para poner otra variable para imprimir.

¿Existe alguna función que pueda hacer esto fácilmente?

Por ejemplo:

$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

Llegar:

I am looking for a way to pull the first 100 characters from a string vari
JoshFinnie
fuente
Una mejor pregunta sería: ¿Cómo se extraen / seleccionan los primeros n caracteres de una cadena?
rahim.nagori

Respuestas:

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

Para la manipulación de cadenas, aquí hay una página con muchas funciones que pueden ayudarlo en su trabajo futuro.

Patrick Desjardins
fuente
2
hay un problema al devolver el texto en árabe, ya que son palabras con letras combinadas si el segundo parámetro (100) no está al final de las palabras en árabe en el último mientras se cuentan 100, devolverá nulo. para eso usaremos (mb_substr ($ big, 0,100)
SAR
38

Podrías usar substr, supongo:

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

o mb_substr para cadenas de varios bytes:

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

Puede crear una función que utilice esta función y la anexe, por ejemplo, '...'para indicar que se ha acortado. (Supongo que ya hay un centenar de respuestas similares cuando se publica esto ...)

Stein G. Strindhaug
fuente
22

Una respuesta tardía pero útil, PHP tiene una función específicamente para este propósito.

mb_strimwidth

$string = mb_strimwidth($string, 0, 100);
$string = mb_strimwidth($string, 0, 97, '...'); //optional characters for end
Porque
fuente
2
Bueno 1 ... Realmente útil. +1
RJParikh
21
$ x = '1234567';

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

echo substr ($ x, 1, 1); // salidas 2

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

echo substr ($ x, 1); // salidas 234567

echo substr ($ x, -2, 1); // salidas 6
Markus
fuente
1
Gracias. ¡Eso resume muy bien las variables de la función substr ()!
JoshFinnie
Tengo 128.82en una cadena y quiero separar 100y28.82
Moeez
18

prueba esta función

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
fuente
2

Sin funciones internas de 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
fuente