
たとえば
$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で質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
行数が30万件ほどあるCSVから、...
-
stdClass Objectを連想配列のよ...
-
Resource id #3 と表示されま...
-
【PHP】csvファイルへの書き出...
-
バイナリファイルの内容を、そ...
-
ヒアドキュメントの中のfor文
-
PHP SimpleXml unsetについて
-
STLのvectorで作った配列をメン...
-
プルダウンメニューにDBの内容...
-
file_existsでファイル名の部分...
-
String だと「 ByRef引数の型が...
-
マッチング処理(1:N)
-
配列をループでたくさん宣言し...
-
CArrayの要素としてCStringArra...
-
連想配列のprint_rやvar_dump出...
-
mb_encode_numericentityでタグ...
-
正規表現
-
連想配列に追加ってできるン?
-
PHP掲示板で新着順に表示させた...
-
PHPのカッコ[ ]の使い方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヒアドキュメントの中のfor文
-
C言語でCSVファイルの行数を読...
-
Resource id #3 と表示されま...
-
複数行のデータのPOST処理に関して
-
CSVデータを使ったページングと...
-
別ファイルの構造体の値を読み...
-
自動で番号を振りたい
-
配列を利用して表示されるテー...
-
データベースに削除機能を追加...
-
CSVデータの行数カウントをした...
-
AならBを読み込む場合
-
C言語の配列とポインタについて
-
PHP ファイル読み取りについて。
-
phpの掲示板で新しい順に表...
-
php4で同じ要素の数を数えてフ...
-
CSV読込(fgetcsv関数)で「手...
-
PHPからCSVをアップロード後、m...
-
すみません・・誤字脱字が多い...
-
エラーメッセージ(無効な間接...
-
CSVファイルの最終行のデー...
おすすめ情報