100 ポイント。検出文字列の長さを求めます。
$str[0] = "Hello 123asd [haha]"
$str[1] = "Hello 123asd [How are you?]"
// 1 つの漢字 (utf-8 エンコーディング) 記号 [内側の単語と外側の記号は 1 文字としてカウントされます]
次に長さを計算します
結果は $str[0] と $str[1] の長さは 9 です
関数として書くのがベストです。ありがとうございます
-----解決策---------------------------- ---
持っていません 投稿者の質問がよくわかりませんが、手持ちの機能が 1 つあります。
/*** utf8の長さを取得する * @作者mu_rain * @param 文字列 $str * @return Int*/ 静的関数 strlen_utf8($str) { $i = 0; $count = 0; $len = strlen ($str); while ($i = $len) ブレーク; if($chr & 0x80) { $chr <font color="#e78608">------解決策------------------</font><br>
function myLen($str,$startTag='[',$endTag=']',$encoding='utf-8') { $st = preg_quote($startTag); $et = preg_quote($endTag); return mb_strlen(preg_replace("#{$st}[^{$et}]*{$et}#","~",$str),$encoding); } echo myLen("こんにちは 123asd [笑]");//9 <br><font color="#e78608">------解決策----------------------</font><br>大量の文字列関数が付属しているため、使用に時間がかかります。 <br>
<?php /*** JetBrains PhpStorm によって作成されました。 * ユーザー: 管理者 * 日付: 12-2-17 * 時間: 上午11:43 * このテンプレートを変更するには、ファイル | を使用します。設定 |ファイルテンプレート。*/ /*** 文字列処理の基本クラス。 * @作者mu_rain*/ クラス kString{ //------------------------------------------------- /*** 文字列をエンコードするには、base64_encode を置き換えます * * @param $str オブジェクト インスタンス * @パッケージKDG * @subpackage 文字列 * @category Putils * @著者ジム * @return 混合*/ //------------------------------------------------- パブリック静的関数 encode($str){ $src = 配列("/","+","="); $dist = array("-a","-b","-c"); $old = Base64_encode($str); $new = str_replace($src,$dist,$old); $new を返します。 } //------------------------------------------------- /*** 文字列をデコードするには、base64_decode を置き換えます * * @param $str オブジェクトの例 * @パッケージP * @subpackage 文字列 * @category Putils * @著者ジム * @return 混合*/ //------------------------------------------------- パブリック静的関数 decode($str){ $src = array("-a","-b","-c"); $dist = array("/","+","="); $old = str_replace($src,$dist,$str); $new = Base64_decode($old); $new を返します。 } //------------------------------------------------- /*** 文字列をデコードするには、base64_decode を置き換えます * * @param $str オブジェクトの例 * @パッケージP * @subpackage 文字列 * @category Putils * @著者ジム * @return 混合*/ //------------------------------------------------- public static function showAsFileSize($str){ // 1024 を 1k に変更します $count = intVal($str); $destSize = $count/1024; $destSize =round($destSize,1); $destSize."K"を返します; } <div class="clear"></div>