Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie einen teilweisen Ersatz in PHP
So implementieren Sie eine teilweise Ersetzung in PHP: 1. Implementieren Sie eine teilweise Ersetzung durch die Funktion „substr_replace“. 2. Implementieren Sie eine teilweise Ersetzung durch die selbst erstellte Asterisk-Ersetzungsfunktion „replaceStar($str, $start, $length=0)“. .
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
PHP implementiert einen teilweisen Ersatz und verwendet PHP, um einen Teil des Inhalts durch Sternchen zu ersetzen
In aktuellen Projekten Sie werden darauf stoßen, dass die mittleren Ziffern der Mobiltelefonnummer einer Person ausgeblendet und nur die letzten 4 Ziffern der ID-Nummer angezeigt werden müssen. Am Anfang habe ich online gesucht und festgestellt, dass jemand die Funktion substr_replace verwendet hat, um sie zu ersetzen. Später habe ich diese Funktion auch verwendet, aber als ich sie verwendet habe, war sie nicht sehr nützlich.
1. substr_replace
Werfen wir zunächst einen Blick auf die Syntax dieser Funktion:
Der Code lautet wie folgt:
substr_replace(string,replacement,start,length)
Parameter | Beschreibung |
Zeichenfolge | erforderlich. Gibt die zu überprüfende Zeichenfolge an. |
Ersatz | erforderlich. Gibt die einzufügende Zeichenfolge an. |
start |
Erforderlich. Gibt an, wo in der Zeichenfolge mit der Ersetzung begonnen werden soll. Positive Zahl – Beginnen Sie mit dem Ersetzen beim Start Offset 0 – Beginnen Sie mit dem Ersetzen charlist beim ersten Zeichen in der Zeichenfolge. Optional. Gibt an, wie viele Zeichen ersetzt werden sollen.Positive Zahl – die Länge der zu ersetzenden Zeichenfolge |
Negative Zahl – die Anzahl der Zeichen, die ab dem Ende der Zeichenfolge ersetzt werden sollen | 0 – Einfügung statt Ersetzung
当start与charlist都为正数的时候,非常好理解,也很符号人的逻辑,start是从0开始的,如下图,根据条件,绿色的将是要被替换的元素 当start为负数,charlist为正数的时候,也挺好理解的 当start为正数,charlist为负数的时候,这个我一开始理解错了 当start为负数,charlist为负数的时候,有一个地方需要注意的就是:如果 start 是负数且 length 小于等于 start,则 length 为 0。这个坑挺容易踩到的 charlist为0的时候,就变成插入了,而不是替换,额。。。 用下来,我是感觉不是很顺手,虽然说满足我现在的需求还是可以的,但是如果将来需要一些扩展的话,耍起来挺吃力的,所以就想到自己构造一个,将来用起来也方便。 推荐学习:《PHP视频教程》 二、自制的星号替换函数 代码如下: 前面的两个参数与上面的一样,最后的参数与上面不同 当start与length都为正数,与substr_replace表现的一样 当start为负数,length为正数,与substr_replace表现的一样 源码分享 不擅长算法,这里就用很普通的逻辑来展示啦,没有用到啥数学公式。 if($start >= 0)这里做start大于等于0与小于0的分支 在start 的分之中,分别再做length 大于0,小于0和等于0的三个分支 最后计算出start、count和要替换的星号字符串,最后计算出的start与count都是正数,运用substr_replace做替换 单元测试 |
Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen teilweisen Ersatz in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!