Comment extraire les 100 premiers caractères d'une chaîne en PHP

91

Je cherche un moyen d'extraire les 100 premiers caractères d'une variable de chaîne pour les mettre dans une autre variable pour l'impression.

Y a-t-il une fonction qui peut faire cela facilement?

Par exemple:

$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

Obtenir:

I am looking for a way to pull the first 100 characters from a string vari
JoshFinnie
la source
La meilleure question serait: Comment tirez-vous / sélectionnez-vous les n premiers caractères d'une chaîne?
rahim.nagori

Réponses:

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

Pour la manipulation de chaînes, voici une page avec de nombreuses fonctions qui pourraient vous aider dans vos futurs travaux.

Patrick Desjardins
la source
2
il y a un problème lors du retour du texte arabe, car ce sont des mots avec des lettres combinées si le deuxième paramètre (100) n'est pas à la fin des mots arabes sur le dernier en comptant 100 il retournera nul. pour cela nous utiliserons (mb_substr ($ big, 0,100)
SAR
38

Vous pouvez utiliser substr, je suppose:

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

ou mb_substr pour les chaînes multi-octets:

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

Vous pouvez créer une fonction qui utilise cette fonction et l'ajoute par exemple '...'pour indiquer qu'elle a été raccourcie. (Je suppose qu'il y a déjà une centaine de réponses similaires lorsque cela est publié ...)

Stein G. Strindhaug
la source
22

Réponse tardive mais utile, PHP a une fonction spécifiquement à cet effet.

mb_strimwidth

$string = mb_strimwidth($string, 0, 100);
$string = mb_strimwidth($string, 0, 97, '...'); //optional characters for end
Coz
la source
2
Bon 1 ... Vraiment utile. +1
RJParikh
21
$ x = '1234567';

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

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

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

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

echo substr ($ x, -2, 1); // sorties 6
Markus
la source
1
Merci. Cela résume bien les variables de la fonction substr ()!
JoshFinnie
J'ai 128.82dans une chaîne et je veux séparer 100et28.82
Moeez le
18

essayez cette fonction

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
la source
2

Sans fonctions internes 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
la source