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

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.


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


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

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

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

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);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.