最近のプロジェクトでは、誰かの携帯電話番号の中央の桁を非表示にし、最後の 4 桁のみを表示する必要がある場合があります。 ID番号の。最初はネットで検索して、substr_replace関数を使って置き換えているのを見つけましたが、後からこの関数も使いましたが、実際に使ってみるとあまり役に立ちませんでした。
1.substr_replace
まずこの関数の構文を見てみましょう:
コードをコピーします コードは次のとおりです: substr_replace(string,replacement,start,length)
パラメータ | 説明 |
文字列 | 必須。チェックする文字列を指定します。 |
交換 | 必須。挿入する文字列を指定します。 |
スタート |
必須。文字列内のどこから置換を開始するかを指定します。 正の数 - start オフセットで の置換を開始します 負の数値 - 文字列の末尾からの start オフセットで の置換を開始します0 - 文字列の最初の文字から の置換を開始します |
チャーリスト |
オプション。置換する文字数を指定します。 正の数 - 置換される文字列の長さ 負の数 - 文字列の末尾から置換される文字数 0 - 置換ではなく挿入 |
1. start と charlist が両方とも正の数値の場合、以下に示すように、Start が 0 から始まることを表しており、緑色の要素が置き換えられる要素になります。
2. start が負の数、charlist が正の数であると理解しやすいです
3. start が正の数、charlist が負の数の場合、最初はこれを誤解しました
4. start が負の数で、charlist が負の数の場合、注意すべき点が 1 つあります。start が負の数で、length が start 以下の場合、length は 0 です。この穴はとても入りやすいです
5. charlist が 0 の場合、置換ではなく挿入になります。 。 。
使ってみて、今のニーズには応えられるものの、将来的に拡張が必要になった場合にはかなり使いにくいと感じたので、自分で構築してみようと思いました。将来的にも便利に使えます。
2. 自作のアスタリスク置換機能
コードをコピー コードは次のとおりです: replaceStar($str, $start, $length = 0)
最初の 2 つのパラメータは上記と同じで、最後のパラメータは上記とは異なります
1. start と length が両方とも正の数値の場合、substr_replace と同じように動作します
2. start が負の数、length が正の数の場合、substr_replace
と同じように動作します。
3. ソースコードの共有
リーリー
1. if($start >= 0) start が 0 以上 0 未満の分岐です
2. 始点のうち、長さが 0 より大きい、0 より小さい、0 に等しい 3 つの枝を作成します
3. 最後に start、count、および置換されるアスタリスク文字列を計算します。最終的に計算された start と count は両方とも正の数値です。
4. 単体テスト
以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。
http://www.bkjia.com/PHPjc/1040810.html