[PHP]最後の三文字をアスタリスクで置換

Last Updated: 2016 年 08 月 02 日 12のコメント

PHPを使用して終了の三文字をアスタリスクで処理する方法

前へで、名前の最初の文字と最後の文字だけを表示するようにする方法を説明しました。 同様の延長線上でのタイトルや会社名などの端のいくつかの文字(例えば、XNUMX文字)だけをアスタリスク(*)を処理する方法について説明します。

お問い合わせフォームなどのクライアントは、文を上げたときに、全体の会社名や特定の情報がそのまま露出されていることを望んでいない場合があります。 この場合、以下のようなコードを使用して最初の数文字(以下では、3文字)のみ表示され、残りは***で置き換えることができます。

$strim = mb_strimwidth($company, '0', '3', '***', 'utf-8');

またはもっと精巧にするには、次のようなコードを応用することができます。

mb_substr($company,0,1).str_repeat('*',$len-2).mb_substr($company,-1,1);

このコードを適用すると、 最初の文字と最後の文字だけが表示され、残りは文字数に応じて*に置き換えされます。 文字の長さをチェックして文字の長さが3文字以上の時に適用すればいいようです。

実戦でざっと上記同様の方法で前の数文字だけを露出するように処理されました。 しかし、作業が終わって少し時間が経って、クライアントから連絡が来て、後の数文字をアスタリスク処理頼まね。 だから mb_substrを使用して、次のようにしてテストしてみました。

$strim = mb_substr($company, '0', -3) . "***";

mb_strlenを使用して文字数チェックをして、一定の文字の長さ以上の場合にのみ、コードが適用されるようといいようです。 上記のコードは、文法的に正しいことを確実に分からない動作はよくします。 もしかしたら文法的に正しくない場合、以下のコメントでお知らせいただければ修正するようにします。

Replace-last-4-characters-with-asteriks-in-php

図は、上記のコードを少し応用して WordPress 掲示板プラグインKBoardに適用した場合です。 テキストのタイトルが特定の長さを超えている場合は、文字数を制限し、末尾を末尾記号(...)に置き換えました。 状況に応じて多様に応用できます。

メモ: もしハングルを考慮する必要がなく、英語や数字のみに適用される場合には、 substrを使用します。

substr($company, 0, -3) . "***";

上記のコードを適切に応用してください(参照).


12のコメント

コメント

  1. この記事Titleに合った質問はありませんが、PHPの文字列に関する内容と質問します。

    プログラミング問い合わせたスリップㅜ。ㅜ

    $name = "ギルドンホン"
    「紅吉洞」で出力したいです。

    str_replace()、strrev()などは私が望むものではないと思います...

    もしかしたら助けいただければ幸いです。

    応答
    • 数日前に少し特別に処理してほしいという要請を受けましたが、例えば「ホンギル銅商社」と言えば、後部の数文字だけOOOのように処理してほしいということでした。 この場合、「ホンギルOOO」のように。
      そしてdivの幅に合わせるよりも、いくつかのケースでは、意図的に、タイトルや特定の情報を一部だけ示すが、必要に応じています。 そのような場合のためのものと考えた場合になると思われる。

      応答
      • ああ…そうなら、cssではなくjsで

        if(string.length > 5) {
        string = string.substring(0,5)+"...";
        }


        このように簡単にする方法もあります。 ^^

      • サーバーの速度/読み込み速度の問題のために、front-endでcssで処理が可能な場合はcssで処理するのが最も良く、cssで処理ができなければ、js、およびphpは常に最後の選択だと思うとお勧めします。

      • 良い情報ありがとうございます。

        上記のjsコードは5文字しか表示されず、残りは...として扱われるようです。
        後ろの3桁だけ「...」で処理することも可能でしょうか? (たとえば、この記事のタイトルが「末尾の3文字をアスタリスクに置き換える」ですが、Webに表示されている場合は、「終わりのXNUMX文字をアスタリスクに... ...)

        そしてPHPで処理する場合には、管理者にはすべての情報を表示するようにして、一般には一部のみを示すことが可能なのですが、jsの場合でも、ユーザーの権限に基づいて処理が可能でしょうか?

      • stringの数字はご希望の通りに変更したらされます。

        「jsの場合でも、ユーザー権限に応じて処理できますか?」

        はい、もちろん可能ですね。

        if else文はphpだけでなく、すべての言語に存在から。

        if!マネージャー、(管理者ではない場合)

        ...表示

        よくご存知だと思い、 WordPressはis_admin()関数がありますので、非常に簡単です。

      • body tagにclassを追加いただき、どのようロジックをチャシリョヌンジよく理解していません。

        管理者であることを確認ハヌンゴは、 WordPress 独自の関数を使用して言うと、

        current_user_can()関数(publicページ)

        is_admin()関数(管理者ページ)

        があり、他の関数を合わせて使う方法もあったが、

        このように (is_admin() && $current_user),...

        私はジャスで知ら単純に、

        var elementExists = document.getElementById("wpadminbar");

        このようにしてください。 (管理者の場合にのみ、wpadminbarというelementが存在することができるから)。

        いくつかの例があるのではなく、直接if else文を組んでする必要がありでしょう。 どのように組んでも正解があるわけではないからね。