たとえば
$data="あ5Aいう7えお"
という文字列があったとして
一文字ずつの決まった長さの合計を表示しようとおもっています。
$KAZU=mb_strlen($data,"SJIS");
for($i=0;$i!=$KAZU;$i++){
$moji=mb_substr($data,$i,$i,"SJIS");
$moji_size=mb_strwidth($moji,"SJIS");
if($moji_size==2){
$px+=12;
}else{
if(mbereg("/[A-Z]./",$moji)){
$px+=10;
}elseif(mbereg("/[0-9]./",$moji)){
$px+=9;
}elseif(mbereg("/[a-z]./",$moji)){
$px+=8;
}else{
$px+=6;
}
}
if($px>370){
$px=0;
break;
}
}
print "$px";
$data="あ5Aいう7えお"の場合結果は(12+9+8+12+12+9+12+12=)86になってほしい
この方法でやってもうまくいきませんでした。なんだか面倒なことしているような気もしますが、もっと簡単な方法など知っている方などいらっしゃいましたら、どなたか教えていただければ幸いです。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
なんとなくプログラマーの野生の勘で、
> $moji=mb_substr($data,$i,$i,"SJIS");
$moji=mb_substr($data,$i,1,"SJIS");
> mbereg("/[A-Z]./",$moji)
mb_ereg( "[A-Z]", $moji ) ※数字・英小文字も同様。
とかじゃないかなーと思わないでもなかったり。
No.2
- 回答日時:
なんか数があわないとおもったらAは8じゃなくて10ですよね??
こんな感じでやるとよいのでは?
<?
$data="あ5Aいう7えお";
$px=strlen($data)*6;//1バイト文字は6、2バイト文字は12をたす
if(preg_match_all("/[A-Z]/",$data,$matches)) $px+=count($matches[0])*4;//A~Zはさらに4をたす(つまり10をたす)
if(preg_match_all("/[0-9]/",$data,$matches)) $px+=count($matches[0])*3;//0~9はさらに3をたす(つまり9をたす)
if(preg_match_all("/[a-z]/",$data,$matches)) $px+=count($matches[0])*2;//a~zはさらに2をたす(つまり8をたす)
print $px;
?>
間違いに指摘されて今気づきました。大変申し訳ありませんでした。
こっちのほうが処理が簡単そうですね。使ってみたいと思います。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- Visual Basic(VBA) VBA シート上にドロップダウンリストを作り、予め指定値をセットしたいのですが 1 2023/03/25 15:15
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- HTML・CSS 検索窓とcssハックについて 3 2022/04/22 12:21
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ヒアドキュメントの中のfor文
-
doxygenを使用する環境について
-
別ファイルの構造体の値を読み...
-
文字列の文字一文字ずつを解析...
-
PHPで外部ファイルを読み込むと...
-
複数行のデータのPOST処理に関して
-
rubyで複数列のデータを一行に...
-
二次元配列の削除
-
phpで日本語の文字列を抽出した...
-
絞り込んでランダム表示
-
CSVファイルの最終行のデー...
-
csvのソーティング
-
「test.php?」の後のデータの読...
-
クッキーがよくわかりません
-
指定文字を含むファイル名の取得
-
データ受け取り
-
DB参照して結果を出力する。
-
携帯絵文字変換スクリプトで20...
-
プルダウンメニューにDBの内容...
-
配列をループでたくさん宣言し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの構造体の値を読み...
-
複数行のデータのPOST処理に関して
-
エラーメッセージ(無効な間接...
-
Resource id #3 と表示されま...
-
ヒアドキュメントの中のfor文
-
自動で番号を振りたい
-
C言語でCSVファイルの行数を読...
-
配列同士の足し算のループ処理
-
stdClass Objectを連想配列のよ...
-
PHPでCSVの一部の行を編集したい
-
phpを実行するとファイルダウン...
-
行数が30万件ほどあるCSVから、...
-
phpでCSVファイルの中身を多次...
-
php Undefined variableエラー
-
CSVデータの行数カウントをした...
-
csvの内容を行単位で削除したい
-
複数ファイルで、それぞれの行...
-
テキストデータから指定行の削除
-
rubyで複数列のデータを一行に...
-
PHP5でCSVの指定行データだけを...
おすすめ情報