¿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

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.


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 ...)


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

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

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);
}

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);
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.