Maison  >  Article  >  développement back-end  >  Méthode PHP pour remplacer le caractère du milieu d'une chaîne par des points de suspension

Méthode PHP pour remplacer le caractère du milieu d'une chaîne par des points de suspension

怪我咯
怪我咯original
2017-07-07 10:11:381236parcourir

Cet article présente principalement la méthode de remplacement du caractère central de la chaîne par des points de suspension en PHP. Il peut réaliser la fonction de remplacement de la partie médiane de la chaîne par une ellipse. Il convient aux personnes sensibles. des informations telles que les numéros de compte et les numéros de téléphone portable. Cachés, les amis qui en ont besoin peuvent se référer à

Cet article décrit la méthode de remplacement du caractère central d'une chaîne par une ellipse en PHP. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Pour une longue chaîne, si vous souhaitez que l'utilisateur ne voie qu'une partie du contenu de la tête et de la queue et masque le contenu du milieu, vous pouvez utiliser cette fonction php , qui permet de préciser le contenu souhaité Le nombre de chaînes intermédiaires cachées

/**
 * 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);
}

Exemple de démonstration :

// 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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn