2008-11-25 22 views
57

Estoy buscando una manera de extraer los primeros 100 caracteres de una variable de cadena para poner otra variable para imprimir.Cómo extraes los primeros 100 caracteres de una cadena en PHP

¿Hay 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 

Para obtener:

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

Respuesta

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

Para String Manipulation aquí es una página con una gran cantidad de funciones que pueden ayudarle en su trabajo futuro.

+1

hay un problema en volver texto árabe, ya que son palabras con las letras combinadas si el segundo parámetro (100) no está al final de las palabras árabes en la última mientras cuenta 100 se devolverá un valor nulo . para eso vamos a usar (mb_substr ($ big, 0,100) – SAR

18

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

Usted podría utilizar substr, supongo:

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

o mb_substr para cadenas multibyte:

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

Se puede crear un wich función utiliza esta función y anexa, por ejemplo, '...' para indicar que se ha acortado. (Supongo que no noté un centenar de respuestas similares cuando esto se ha escrito ...)

19
$x = '1234567'; 

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

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

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

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

echo substr ($x, -2, 1); // outputs 6 
+1

Gracias. Eso resume las variables de la función substr() muy bien! – JoshFinnie

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

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 
+1

Bueno 1 ... Muy útil. +1 – RJParikh

Cuestiones relacionadas