Wie zieht man die ersten 100 Zeichen eines Strings in PHP?

88

Ich suche nach einer Möglichkeit, die ersten 100 Zeichen aus einer Zeichenfolgenvariablen zu ziehen, um eine andere Variable zum Drucken einzufügen.

Gibt es eine Funktion, die dies leicht tun kann?

Beispielsweise:

$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

Bekommen:

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

Antworten:

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

Für die String-Manipulation finden Sie hier eine Seite mit vielen Funktionen, die Ihnen bei Ihrer zukünftigen Arbeit helfen können.

Patrick Desjardins
quelle
2
Es gibt ein Problem bei der Rückgabe von arabischem Text, da es sich um Wörter mit kombinierten Buchstaben handelt. Wenn der zweite Parameter (100) beim letzten Zählen von 100 nicht am Ende der arabischen Wörter steht, wird null zurückgegeben. dafür werden wir verwenden (mb_substr ($ big, 0,100)
SAR
38

Sie könnten substr verwenden, denke ich:

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

oder mb_substr für Mehrbyte-Zeichenfolgen:

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

Sie können eine Funktion erstellen, die diese Funktion verwendet und beispielsweise anfügt, um '...'anzuzeigen, dass sie gekürzt wurde. (Ich denke, es gibt bereits hundert ähnliche Antworten, wenn dies veröffentlicht wird ...)

Stein G. Strindhaug
quelle
21
$ x = '1234567';

Echosubstrat ($ x, 0, 3); // gibt 123 aus

Echosubstrat ($ x, 1, 1); // gibt 2 aus

Echosubstrat ($ x, -2); // gibt 67 aus

Echosubstrat ($ x, 1); // gibt 234567 aus

Echosubstrat ($ x, -2, 1); // gibt 6 aus
Markus
quelle
1
Danke dir. Das fasst die Variablen der substr () - Funktion gut zusammen!
JoshFinnie
Ich habe 128.82in einer Schnur und ich möchte trennen 100und28.82
Moeez
20

Als späte, aber nützliche Antwort hat PHP eine spezielle Funktion für diesen Zweck.

mb_strimwidth

$string = mb_strimwidth($string, 0, 100);
$string = mb_strimwidth($string, 0, 97, '...'); //optional characters for end
Coz
quelle
2
Gut 1 ... Wirklich nützlich. +1
RJParikh
18

Probieren Sie diese Funktion aus

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

Ohne PHP interne Funktionen:

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
quelle