Download the PHP package wttks/laravel-str-ja without Composer

On this page you can find all versions of the php package wttks/laravel-str-ja. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-str-ja

wttks/laravel-str-ja

Laravel Str クラスの日本語拡張パッケージ。

インストール

Laravel 11以降はパッケージ自動検出により、ServiceProviderは自動登録されます。

翻訳ファイルをアプリに公開する場合:

提供する Str マクロ一覧

文字コード変換

マクロ 説明
Str::toSjis($str) UTF-8 → SJIS-win(正規化込み)
Str::fromSjis($str) SJIS-win → UTF-8
Str::normalizeForSjis($str) SJIS-win変換前の正規化のみ
Str::sjisBytes($str, normalize: false) SJIS-win変換後のバイト数
Str::truncateSjis($str, $maxBytes, normalize: false) SJIS-winバイト数指定で末尾を切り捨て
Str::toEuc($str) UTF-8 → eucJP-win(正規化込み)
Str::fromEuc($str) eucJP-win → UTF-8
Str::normalizeForEuc($str) eucJP-win変換前の正規化のみ

日本語文字列の正規化

マクロ 説明
Str::normalizeJa($str, punctuation: false) 日本語文字列の正規化(半角カナ→全角、全角ASCII→半角 等)
Str::sanitizeJa($str, punctuation: false) normalizeJa の全処理 + 連続空白を半角スペース1つに正規化 + 前後トリム
Str::squishJa($str) トラブル文字削除 + 連続空白を半角スペース1つに正規化 + 前後トリム

かな変換

マクロ 説明
Str::toHiragana($str) カタカナ・半角カナ → ひらがな
Str::toKatakana($str) ひらがな・半角カナ → 全角カタカナ

文字種判定

マクロ 説明
Str::isHiragana($str) 全体がひらがなか判定(長音符・中点を許容)
Str::isKatakana($str) 全体が全角カタカナか判定(長音符・中点を許容)
Str::hasHiragana($str) ひらがなを含むか判定
Str::hasKatakana($str) 全角カタカナを含むか判定
Str::hasKanji($str) 漢字を含むか判定
Str::hasJapanese($str) ひらがな・カタカナ・漢字のいずれかを含むか判定
Str::isFurigana($str, $mode = 'both') フリガナとして有効か判定(空白許容)

文字コード判定

マクロ 説明
Str::detectEncoding($str) エンコーディングを判定('UTF-8' / 'SJIS-win' / 'eucJP-win' / 'ASCII' / false)
Str::isUtf8($str) UTF-8(またはASCIIのみ)か判定
Str::isSjis($str) SJIS-win(またはASCIIのみ)か判定
Str::isEuc($str) eucJP-win(またはASCIIのみ)か判定
Str::isAscii($str) ASCIIのみで構成されているか判定

トラブル文字・空白

マクロ 説明
Str::hasTroubleChars($str) トラブル文字(制御文字・不可視文字・BOM等)が含まれるか判定
Str::removeTroubleChars($str) トラブル文字を削除
Str::squishJa($str) トラブル文字削除 + 連続空白の正規化 + 前後トリム
Str::splitWords($str) 全角・半角・特殊スペースで単語に分割(配列を返す)
Str::strWidth($str) 文字幅を返す(全角=2、半角=1)

使い方

SJIS-win 変換

または SjisConverter を直接使用:

eucJP-win 変換

SJIS-win との差異: ©(U+00A9)は eucJP-win で変換可能ですが SJIS-win では欠落します。™ は eucJP-win で TM に変換されます。€ はどちらでも変換不可です。

日本語文字列の正規化(normalizeJa)

normalizeJa の変換内容(常時):

変換 例
不可視制御文字・BOM 削除 U+200B, U+FEFF 等
半角カナ → 全角カナ ガ → ガ
全角ASCII → 半角 A → A、1 → 1、! → !

punctuation: true の場合に追加:

変換 例
引用符 " " → "、' ' → '
ダッシュ類 – — ― → -
省略記号 … → ...、‥ → ..

日本語入力の総合サニタイズ(sanitizeJa)

フォーム入力値のクリーンアップに最適な関数。normalizeJa() の全処理に加えて空白の正規化・前後トリムを一括実行します。

各関数の処理範囲:

処理 normalizeJa sanitizeJa squishJa
トラブル文字削除 ✔ ✔ ✔
半角カナ→全角カナ ✔ ✔ -
全角ASCII→半角 ✔ ✔ -
句読点変換(オプション) ✔ ✔ -
連続空白→半角スペース1つ - ✔ ✔
前後トリム - ✔ ✔

空白の正規化(squishJa)

Str::squish() の日本語強化版。トラブル文字(NULLバイト・ゼロ幅スペース・双方向制御文字等)も合わせて除去します。

Str::squish() との違い: Str::squish() は空白の正規化のみ行います。squishJa() はそれに加えてNULLバイト・ゼロ幅スペース・双方向制御文字等のトラブル文字も除去します。

ひらがな ↔ カタカナ変換

注意: toKatakana はひらがなも変換します。ガイドの名前 → ガイドノ名前

文字種判定

注意: isKatakana / hasKatakana / hasJapanese は半角カタカナ(アイウ等)を対象外とします。半角カナを含む入力は事前に normalizeJa() や toKatakana() で全角変換してから判定してください。

文字コード判定

トラブル文字の判定・削除

制御文字・不可視文字・BOMなど、入力値にコピペで混入しやすいトラブルの原因となる文字を検出・除去します。

対象文字:

空白分割・単語数カウント

Laravel バリデーションルール

StrJaServiceProvider の登録により、以下のカスタムルールが使用可能になります。

ルール 説明
is_hiragana ひらがなのみ
has_hiragana ひらがなを1文字以上含む
is_katakana 全角カタカナのみ
has_katakana 全角カタカナを1文字以上含む
has_japanese ひらがな・カタカナ・漢字のいずれかを含む
has_kanji 漢字を1文字以上含む
is_utf8 UTF-8エンコーディングである
is_sjis SJIS-winエンコーディングである
is_euc eucJP-winエンコーディングである
no_unsafe_chars トラブル文字を含まない
is_furigana フリガナとして有効(空白許容)
is_furigana:hiragana ひらがなのフリガナ(空白許容)
is_furigana:katakana カタカナのフリガナ(空白許容)
word_count:N ちょうどN単語
min_word_count:N N単語以上
max_word_count:N N単語以下

エラーメッセージは lang/ja/validation.php / lang/en/validation.php に定義されています。 カスタマイズする場合は vendor:publish でアプリに公開してください。

SJIS-win 正規化の動作

toSjis() / normalizeForSjis() は変換前に以下の2ステップを自動適用します。

Step 1: Unicode NFKC 正規化

入力 出力 説明
㈱ (株) 丸囲み株式会社
㈲ (有) 丸囲み有限会社
① 1 丸付き数字
㎝ cm 単位記号
A A 全角英字
1 1 全角数字
~ ~ 全角チルダ

Step 2: IBM拡張文字・異体字の置換

入力 出力 説明
髙 高 はしご高(U+9AD9)
﨑 崎 たつさき(U+FA11)
— - EMダッシュ
– - ENダッシュ
− - マイナス記号

ラウンドトリップについて

異体字を含まない文字列は toSjis → fromSjis で元の文字列に戻ります。

異体字・互換文字を含む文字列は正規化後の文字列で戻ります(元の異体字には戻りません)。

パフォーマンス

5,000回×5件のベンチマーク結果(PHP 8.5):

実装 1回あたり
strtr(採用) 0.003ms
str_replace 0.008ms
preg_replace 0.020ms

変換テーブルは初回ロード後にメモリキャッシュされます(2回目以降は約64倍高速)。

テスト

ライセンス

MIT


All versions of laravel-str-ja with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
ext-intl Version *
ext-mbstring Version *
illuminate/support Version ^11.0|^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package wttks/laravel-str-ja contains the following files

Loading the files please wait ...