Jak pobrać pierwsze 100 znaków łańcucha w PHP

91

Szukam sposobu na wyciągnięcie pierwszych 100 znaków ze zmiennej łańcuchowej w celu umieszczenia innej zmiennej do drukowania.

Czy jest funkcja, która może to łatwo zrobić?

Na przykład:

$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

Aby otrzymać:

I am looking for a way to pull the first 100 characters from a string vari
JoshFinnie
źródło
Lepszym pytaniem byłoby: jak wyciągnąć / wybrać pierwsze n znaków z ciągu?
rahim.nagori

Odpowiedzi:

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

Na łańcuchach o to strona z dużą ilością funkcji, które mogą pomóc w pracy w przyszłości.

Patrick Desjardins
źródło
2
występuje problem z zwracaniem tekstu arabskiego, ponieważ są to słowa z połączonymi literami, jeśli drugi parametr (100) nie znajduje się na końcu arabskiego słowa na ostatnim, podczas liczenia 100 zwróci wartość null. do tego użyjemy (mb_substr ($ big, 0,100)
SAR
38

Myślę, że możesz użyć substr:

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

lub mb_substr dla ciągów wielobajtowych:

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

Mógłbyś stworzyć funkcję, która korzysta z tej funkcji i dołącza na przykład, '...'aby wskazać, że została skrócona. (Wydaje mi się, że jest już sto podobnych odpowiedzi, kiedy to jest publikowane ...)

Stein G. Strindhaug
źródło
22

Późna, ale użyteczna odpowiedź. PHP ma funkcję specjalnie do tego celu.

mb_strimwidth

$string = mb_strimwidth($string, 0, 100);
$string = mb_strimwidth($string, 0, 97, '...'); //optional characters for end
Coz
źródło
2
Dobra 1 ... Naprawdę przydatne. +1
RJParikh
21
$ x = '1234567';

echo substr ($ x, 0, 3); // wyświetla 123

echo substr ($ x, 1, 1); // wyświetla 2

echo substr ($ x, -2); // wyświetla 67

echo substr ($ x, 1); // wyświetla 234567

echo substr ($ x, -2, 1); // wyświetla 6
markus
źródło
1
Dziękuję Ci. To ładnie podsumowuje zmienne funkcji substr ()!
JoshFinnie,
Mam 128.82w sznurku i chcę się rozdzielić 100i28.82
Moeez
18

spróbuj tej funkcji

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
źródło
2

Bez wewnętrznych funkcji 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
źródło