ホームページ  >  記事  >  バックエンド開発  >  文字列の中間部分を省略記号に置き換える PHP 関数

文字列の中間部分を省略記号に置き換える PHP 関数

墨辰丷
墨辰丷オリジナル
2018-06-11 10:48:492576ブラウズ

この記事では、文字列の途中を省略記号に置き換える PHP の関数を中心に紹介します。興味のある方はぜひ参考にしてください。

この記事の例では、PHP が文字列の中央の文字を省略記号に置き換える方法を説明します。具体的な分析は次のとおりです。

長い文字列の場合、ユーザーにコンテンツの先頭と末尾のみを表示し、中間のコンテンツを非表示にしたい場合は、この php 関数を使用して、

/**
 * Reduce a string by the middle, keeps whole words together
 *
 * @param string $string
 * @param int $max (default 50)
 * @param string $replacement (default [...])
 * @return string
 * @author david at ethinkn dot com
 * @author loic at xhtml dot ne
 * @author arne dot hartherz at gmx dot net
 */
function strMiddleReduceWordSensitive($string,$max=50,$rep='[...]'){
  $strlen = strlen($string);
  if ($strlen <= $max)
    return $string;
  $lengthtokeep = $max - strlen($rep);
  $start = 0;
  $end = 0;
  if (($lengthtokeep % 2) == 0) {
    $start = $lengthtokeep / 2;
    $end = $start;
  } else {
    $start = intval($lengthtokeep / 2);
    $end = $start + 1;
  }
  $i = $start;
  $tmp_string = $string;
  while ($i < $strlen) {
    if (isset($tmp_string[$i]) and $tmp_string[$i] == &#39; &#39;) {
      $tmp_string = substr($tmp_string, 0, $i) . $rep;
      $return = $tmp_string;
    }
    $i++;
  }
  $i = $end;
  $tmp_string = strrev ($string);
  while ($i < $strlen) {
    if (isset($tmp_string[$i]) and $tmp_string[$i] == &#39; &#39;) {
      $tmp_string = substr($tmp_string, 0, $i);
      $return .= strrev ($tmp_string);
    }
    $i++;
  }
  return $return;
  return substr($string, 0, $start).$rep.substr($string, - $end);
}

の番号 デモ例:

// example:
$text = &#39;This is a very long test sentence, bla foo bar nothing&#39;;
print strMiddleReduceWordSensitive ($text, 30) . "\n";
// Returns: This is a very[...]foo bar nothing (~ 30 chrs)
print strMiddleReduceWordSensitive ($text, 30, &#39;...&#39;) . "\n";
// Returns: This is a very...foo bar nothing (~ 30 chrs)

概要: 上記がこの記事の全内容です。お役に立てば幸いです。みんなの学びに。

関連する推奨事項:

PHP は Snoopy クラスを使用してページ クローリング メソッドを実装します

PHP クラスの継承と拡張操作スキル

PHP オブジェクトのインスタンス化とクローン作成の使用方法

以上が文字列の中間部分を省略記号に置き換える PHP 関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。