Maison >développement back-end >Problème PHP >Comment convertir une sous-chaîne d'une certaine longueur en signe * en PHP

Comment convertir une sous-chaîne d'une certaine longueur en signe * en PHP

青灯夜游
青灯夜游original
2021-08-06 19:07:313177parcourir

Dans l'article précédent, nous avons présenté la méthode sensible à la casse pour obtenir la première ou la dernière occurrence d'une sous-chaîne dans une chaîne, puis déterminer si la sous-chaîne existe. Si vous en avez besoin, veuillez consulter "Caractères PHP" Apprentissage de la chaîne. détecter si une sous-chaîne existe (sensible à la casse) 》. Cette fois, nous allons vous expliquer le remplacement de chaîne et vous présenter comment utiliser PHP pour remplacer une sous-chaîne d'une certaine longueur par un signe *.

PHP fournit plusieurs fonctions pouvant effectuer le remplacement de chaînes, mais leurs méthodes de remplacement sont différentes. Certains donnent directement la sous-chaîne qui doit être remplacée, et certains donnent la position de départ du remplacement et la longueur du remplacement. Aujourd'hui, nous allons découvrir cette dernière méthode.

Jetons un coup d'œil à l'exemple suivant :

<?php
$str = &#39;hello,world,hello,world&#39;;
$replace = &#39;*&#39;;
echo substr_replace($str, $replace, 0,5)."<br>";
echo substr_replace($str, $replace, 6,5)."<br>";
?>

En regardant ce code, que pensez-vous qu'il va générer ? "*,world,hello,world" et "hello,*,hello,world" doivent-ils être affichés ? Est-ce correct ? Jetons un coup d'œil au résultat : *,world,hello,world”和“hello,*,hello,world”,那对不对呢,我们来看看输出结果:

Comment convertir une sous-chaîne dune certaine longueur en signe * en PHP

是的,没错。在上例中,substr_replace()函数分别将字符串$str从第一个字符开始,有5个字符长度的子串“hello”和从第7个字符开始,有5个字符长度的子串“world”替换成了*号。

好了,了解了如何将某长度的子串换成*号,下面我们来了解一下实现这个功能的函数substr_replace()。

substr_replace($string,$replacement,$start,$length)函数接受了三个必需参数$string$replacement(替换值)和$start(替换开始的位置),一个可省略的参数$length(要替换的字符数目)。

substr_replace()函数可以在字符串 $string 的副本中将由 $start$length 参数限定的子字符串使用 $replacement 进行替换。

简单来说,就是使用$replacement值从$start位置开始(注,字符串位置起始于 0),替换$length数目的字符。

$start有三种取值情况:

  • 为正数,替换将从 $string 的 $start 位置开始。

  • 为0 ,替换将从 $string 的第一个字符处开始

  • 为负数,替换将从 $string 的倒数第 $start 个位置开始。

$length 参数有四种取值情况:

  • 为正数,就表示被替换的子字符串的长度。

  • 为负数,就表示待替换的子字符串结尾处距离 $string 末端的字符个数。

  • 为 0,那么substr_replace()函数就有了插入功能,会将 $replacement 插入$start Comment convertir une sous-chaîne dune certaine longueur en signe * en PHP

  • Oui Oui , c'est exact. Dans l'exemple ci-dessus, la fonction substr_replace() sépare la chaîne $str à partir du premier caractère, la sous-chaîne de 5 caractères "hello" et la sous-chaîne à partir du premier caractère. A partir de 7 caractères, la sous-chaîne "world" d'une longueur de 5 caractères est remplacée par le numéro *.
  • D'accord, maintenant que nous comprenons comment remplacer une sous-chaîne d'une certaine longueur par un signe *, jetons un coup d'œil à la fonction substr_replace() qui implémente cette fonction.

La fonction substr_replace($string,$replacement,$start,$length) accepte trois paramètres requis $string, $replacement (remplacement value) et $start (la position où commence le remplacement), un paramètre omis $length (le nombre de caractères à remplacer).


La fonction substr_replace() peut être utilisée dans une copie de la chaîne $string avec une sous-chaîne qualifiée par le $start et le $length paramètres$replacement à remplacer.

Pour faire simple, utilisez la valeur $replacement à partir de la position $start (notez que la position de la chaîne commence à 0Comment convertir une sous-chaîne dune certaine longueur en signe * en PHP) pour remplacer $lengthnombre de caractères.

$start a trois situations de valeur :

    est un nombre positif, et le remplacement commencera à partir de la position $start de $chaîne.

    est 0, le remplacement commencera à partir du premier caractère de $string 🎜🎜🎜🎜🎜 est un nombre négatif, le remplacement commencera à partir de la dernière position $start de $string. 🎜🎜🎜🎜Le paramètre $length a quatre valeurs : 🎜
      🎜🎜 est un nombre positif, ce qui signifie que le sous-caractère est en cours de remplacement La longueur de la chaîne. 🎜🎜🎜🎜 est un nombre négatif, ce qui signifie le nombre de caractères depuis la fin de la sous-chaîne à remplacer jusqu'à la fin de $string. 🎜🎜🎜🎜 est 0, alors la fonction substr_replace() a une fonction d'insertion, et $replacement sera inséré dans la position $start. 🎜🎜🎜🎜🎜Si ce paramètre est omis, la valeur par défaut est strlen(string) (la longueur de la chaîne), qui remplace la sous-chaîne entière à partir de la position $start. 🎜🎜🎜
      <?php
      $str = &#39;hello,world,hello,world&#39;;
      $replace = &#39;*&#39;;
      echo substr_replace($str, $replace, 0,-5)."<br>";
      echo substr_replace($str, $replace, -5,5)."<br>";
      echo substr_replace($str, $replace, 6)."<br>";
      ?>
      🎜Résultat de sortie : 🎜🎜🎜🎜🎜🎜D'accord, c'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer dessus. → →🎜Tutoriel vidéo php🎜🎜🎜Enfin, je vous recommande de lire un cours classique "🎜PHP String Processing (Jade Girl Heart Sutra Edition)🎜", c'est gratuit~ Venez apprendre ! 🎜

    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