2

特定の文字数になるように PHP でテキスト文字列をトリミングする方法はありますか? たとえば、次の文字列があるとします。

$string = "this is a string";

どうすればそれをトリミングして言うことができますか:

$newstring = "this is";

これは私がこれまでに使用chunk_split()したものですが、機能していません。誰かが私の方法を改善できますか?

function trimtext($text)
{
$newtext = chunk_split($text,15);
return $newtext;
}

この質問も見ましたが、よくわかりません。

4

10 に答える 10

13
if (strlen($yourString) > 15) // if you want...
{
    $maxLength = 14;
    $yourString = substr($yourString, 0, $maxLength);
}

仕事をします。

ここを見てください。

于 2013-04-29T12:35:37.710 に答える
3

substr必要な数の文字からなる文字列の一部を取得してみましょう。

于 2013-04-29T12:36:07.160 に答える
3

これを使用できます

substr()

部分文字列を取得する関数

于 2013-04-29T12:36:17.017 に答える
0

私の関数にはある程度の長さがありますが、使用するのが好きです。文字列 int を配列に変換します。

function truncate($text, $limit){
    //Set Up
    $array = [];
    $count = -1;
    //Turning String into an Array
    $split_text = explode(" ", $text);
    //Loop for the length of words you want
    while($count < $limit - 1){
      $count++;
      $array[] = $split_text[$count];
    }
    //Converting Array back into a String
    $text = implode(" ", $array);

    return $text." ...";

  }

または、テキストがエディターからのもので、HTML タグを削除したい場合。

function truncate($text, $limit){
    //Set Up
    $array = [];
    $count = -1;
    $text = filter_var($text, FILTER_SANITIZE_STRING);

    //Turning String into an Array
    $split_text = preg_split('/\s+/', $text);
    //Loop for the length of words you want
    while($count < $limit){
      $count++;
      $array[] = $split_text[$count];
    }

    //Converting Array back into a String
    $text = implode(" ", $array);

    return $text." ...";

  }
于 2016-09-22T17:54:03.203 に答える
0

省略記号 (...) が長い場合のみ - 言語固有の特殊文字の処理:

mb_strlen($text,'UTF-8') > 60 ? mb_substr($text, 0, 60,'UTF-8') . "…&quot; : $text;
于 2021-11-26T13:48:28.090 に答える