PHPで文字列の最初の100文字をどのようにプルしますか


91

文字列変数から最初の100文字を引き出して、印刷用に別の変数に入れる方法を探しています。

これが簡単にできる機能はありますか?

例えば:

$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

取得するため:

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

より良い質問は次のようになります:文字列から最初のn文字をどのようにプル/選択しますか?
rahim.nagori

回答:


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

文字列操作については、これが将来の作業に役立つ可能性のある多くの機能を備えたページです。


2
アラビア語のテキストを返す際に問題があります。2番目のパラメータ(100)が最後にアラビア語の単語の最後になく、100を数えている場合、文字が組み合わされた単語であるため、nullが返されます。そのために使用します(mb_substr($ big、0,100)
SAR

38

substrを使用できると思います:

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

またはマルチバイト文字列の場合はmb_substr:

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

この関数を使用して、たとえば'...'短縮されたことを示すために追加する関数を作成できます。(これが投稿されたとき、すでに100の同様の返信があると思います...)


22

遅いが有用な答えであるPHPには、この目的のために特別に機能があります。

mb_strimwidth

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

2
良い1 ...本当に便利です。+1
RJParikh 2016年

21
$ x = '1234567';

echo substr($ x、0、3); // 123を出力します

echo substr($ x、1、1); //出力2

echo substr($ x、-2); //出力67

echo substr($ x、1); //出力234567

echo substr($ x、-2、1); //出力6

1
ありがとうございました。これで、substr()関数の変数がうまくまとめられました。
JoshFinnie 2008年

私は128.82ひもを持っていて、分離100したいと思います28.82
Moeez

18

この機能を試してください

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内部関数なし:

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);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.