PHP'de bir dizenin ilk 100 karakterini nasıl çekersiniz?


91

Yazdırma için başka bir değişken koymak için bir dize değişkeninden ilk 100 karakteri çekmenin bir yolunu arıyorum.

Bunu kolayca yapabilen bir işlev var mı?

Örneğin:

$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

Almak:

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

Daha iyi bir soru şudur: Bir dizeden ilk n karakteri nasıl çeker / seçersiniz?
rahim.nagori

Yanıtlar:


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

İçin dize Manipülasyon burada gelecekteki çalışmaları size yardımcı olabilecek fonksiyonunun bir sürü bir sayfadır.


2
Arapça metnin döndürülmesinde sorun var, çünkü bunlar birleşik harflerden oluşan kelimeler olduğundan, eğer ikinci parametre (100) sondaki Arapça kelimelerin sonunda değilse, 100 sayılırken null döndürür. bunun için kullanacağız (mb_substr ($ büyük, 0,100)
SAR

38

Substr kullanabilirsiniz, sanırım:

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

veya çok baytlı dizeler için mb_substr:

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

Bu işlevi kullanan ve örneğin '...'kısaltıldığını belirtmek için ekleyen bir işlev oluşturabilirsiniz . (Sanırım bu yayınlandığında zaten yüzlerce benzer yanıt var ...)


22

Geç ama faydalı bir cevap, PHP'nin özellikle bu amaç için bir işlevi vardır.

mb_strimwidth

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

2
İyi 1 ... Gerçekten kullanışlı. +1
RJParikh

21
$ x = '1234567';

yankı alt değeri ($ x, 0, 3); // 123 sonucunu verir

yankı alt değeri ($ x, 1, 1); // 2 çıktı

yankı alt değeri ($ x, -2); // çıktı 67

yankı alt değeri ($ x, 1); // 234567 çıktılar

yankı alt değeri ($ x, -2, 1); // 6 çıktı

1
Teşekkür ederim. Bu, substr () işlevinin değişkenlerini güzel bir şekilde özetler!
JoshFinnie

Bir 128.8210028.82
dizim var

18

bu işlevi dene

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

Php dahili işlevleri olmadan:

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);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.