Come estrarre i primi 100 caratteri di una stringa in PHP


91

Sto cercando un modo per estrarre i primi 100 caratteri da una variabile di stringa per inserire un'altra variabile per la stampa.

C'è una funzione che può farlo facilmente?

Per esempio:

$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

Ottenere:

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

La domanda migliore sarebbe: come estrarre / selezionare i primi n caratteri da una stringa?
rahim.nagori

Risposte:


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

Per la manipolazione delle stringhe ecco una pagina con molte funzioni che potrebbero aiutarti nel tuo lavoro futuro.


2
c'è un problema nel restituire il testo arabo, poiché sono parole con lettere combinate se il secondo parametro (100) non è alla fine delle parole arabe sull'ultimo mentre contando 100 restituirà null. per questo useremo (mb_substr ($ big, 0,100)
SAR

38

Potresti usare substr, immagino:

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

o mb_substr per stringhe multibyte:

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

È possibile creare una funzione che utilizzi questa funzione e che si aggiunga ad esempio '...'per indicare che è stata abbreviata. (Credo che ci siano già un centinaio di risposte simili quando questo viene pubblicato ...)


22

Una risposta tardiva ma utile, PHP ha una funzione specifica per questo scopo.

mb_strimwidth

$string = mb_strimwidth($string, 0, 100);
$string = mb_strimwidth($string, 0, 97, '...'); //optional characters for end

2
Buono 1 ... Veramente utile. +1
RJParikh

21
$ x = "1234567";

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

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

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

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

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

1
Grazie. Questo riassume bene le variabili della funzione substr ()!
JoshFinnie

Ho 128.82in una stringa e voglio separare 100e28.82
Moeez

18

prova questa funzione

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

Senza funzioni interne 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);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.