• ベストアンサー

文字数の計算?

PHP初心者です。 変数の中に9文字以上があった場合、次の処理を 行わないようにしたいのですが 『変数の中の文字数を調べる』ような 関数はあるのでしょうか? ご教授お願いします。

  • PHP
  • 回答数3
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • iiikkk
  • ベストアンサー率37% (92/247)
回答No.3

#1です。 実際にやってみればすぐ分かると思いますが、 strlenでは、日本語混在関係なく総バイト数を返します。 mb_strlenでは、文字数を返します。 「1あ2い」の場合、 strlenでは6を、mb_strlenでは4を返します。

maxpower-zero
質問者

お礼

そうだったのですか。 ようやく理解する事が出来ました。 ありがとうございました。

その他の回答 (2)

  • mar0325
  • ベストアンサー率88% (8/9)
回答No.2

文字数を調べる変数に日本語は入っているのでしょうか? 日本語が入っている場合には,mb_strlenが良いと思います.

maxpower-zero
質問者

補足

ご回答ありがとうございます。 変数の中には、基本的には英数字が入りますが 日本語が入る場合もあります。 混合で入る場合もあります。 その時でも、mb_strlenで正確に調べられるのでしょうか?

  • iiikkk
  • ベストアンサー率37% (92/247)
回答No.1

長さ = strlen(変数) これのことですか。

maxpower-zero
質問者

補足

早速のご回答ありがとうございました。 長さを測る分には問題ないと思うのですが 日本語が入っていた場合も 正確に長さを調べられるのでしょうか?

関連するQ&A

  • 変数内の特定の文字の数を数えたい

    パール初心者です。 基礎的なことは知っています。フリーCGIのある程度の改造は出来ますが、自作は出来ません。 質問は変数の中にある特定の文字の個数をカウントする方法です。 変数 $abc="01_01_01" があるとします。 この変数の_(アンダースコア)の数を数えたいのです。 _の数を数えて2個以上ある場合、別の処理をさせたいと考えています。 パターンマッチ演算子を使えばいいのだと思うのですが、私の知識ではよくわかりませんでした。 初心者にもわかりやすい説明で教えてください。 お願いします。

    • ベストアンサー
    • Perl
  • 文字数によって処理内容を変更

    変数には文字が入っています。 変数の文字数が50文字以上だった場合の処理をさせたいのですが、うまくいきません。 下記のようにしてみたのですができませんでした。 どうかご指導いただけないでしょうか? お願いします。 if (($ROWKDATA[5] ne '') and ($ROWKDATA[5] > 50)) { }

    • ベストアンサー
    • Perl
  • 変数内の文字列を指定した数のみ表示。

    こんばんわ。 PHPで変数の中にこんな文字列があったとします。 $a="最近Okwebのサイトのデザインにもだいぶ慣れてこっちのほうがよいのでは。と思うようになってきました。" 普通に表示させるならこれだけと思うんですが、 echo $a 任意の文字数を表示させる関数が思い出せないし検索しても引っかからないです。 アドバイスいただけるとありがたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • なぜ、変数は数じゃなくて文字なども入るのに、変数と

    なぜ、変数は数じゃなくて文字なども入るのに、変数と呼ぶんでしょうか? 変名とかならまだわかりますが 数って。 phpで$name = "山田"

  • 文字数について

    プログラム初心者です mysqlのカラム、varchar(255)に実験で270文字HTMLフォームからmysqlに入れてみました そうしたら、255文字しか保存されていませんでした もしかしたら、PHPで文字数制限しなくてもmysql側のカラムの文字数設定だけでいいのではないかと思ってしまいましたがこれだと不具合とかでてきますか? データ型のtextも文字数指定できるのでしょうか? やっぱり、文字数制限はPHPなどでやったほうがいいのでしょうか? よろしくお願いします

    • ベストアンサー
    • MySQL
  • 文字を16進変換

    C言語にて関数などを使わずに計算式なので文字を16進数に変換したいのですがどのような処理にしたらいいでしょうか?? char型で用意した変数に1文字を格納し、それをアスキーコードの16進数に変換したいです。 よろしくお願いします。

  • 半角の文字数を知るには・・・

    文字数は、length関数を使えばいいのかと思っていたのですが、どうも、半角と全角では認識が違うようなんです、どう区別して文字を数えたらいいのでしょうか・・・ 半角の文字数をしるにはどうしたらいいでしょうか? Perl初心者なので、出来るだけわかりやすく教えて頂きたいです。お願いします。

    • ベストアンサー
    • Perl
  • エクセルの1セルの最大文字数はいくつ?

    エクセルの関数、TRIM、JIS、ASC等を実行したら、#VALUE!が出てしまいました。 文字列(かなり長い)をTRIMで空白を削除し、JISかASCで全角、半角を統一しようと試みました。 上手くいきそうな感じでしたが、その中の4セルに【#VALUE!】と表示されました。 大部分はその処理が正しく実行されているのに、その4つのセルは何故、どうして?? そのセルを調べたところ、そこにはかなり長い文章(文字数)が入力されていたので、半分くらいカットして再実行してみたら、今度は正しく処理されました。 1セルに入っている文章(文字数)が多すぎたのでしょうか?  1セルには何文字(バイト)が許容されるのか、また、1セルで何文字(バイト)以上の場合は、関数は使用できない(通用しない)などの決まりはあるのでしょうか? 今回の場合は、24件で列も30列ぐらいでしたので、【#VALUE!】のエラーも気が付きましたが、これが何百件、数百列となると、エラーに気が付かないかもしれません。(気が付きにくくなります。) 1セルに入力できるおおよその文字数(バイト)は、いったいどれくらいなのでしょうか? お分かりの方がいらっしゃいましたら、アドバイスお願いします。

  • EXCEL、文字の数をカウントしたい。

    エクセル関数を使って、文字(100文字以上)の数をカウントしたいのですが、可能でしょうか。 例えば:セルに一つずつ、ABCAAACDを入力した場合に、A=4、B=1、C=2、D=1 のように表示したいんです。 ※Aを数える場合に、IF関数を使ってAのとき1となるように IF(A1="A",1)+IF(A2="A",1)+・・・+・・・のように順次足していけば短い文字であれば可能ですが、文字数が多くなってくると、セル内に関数がはいりきらずに計算できなくなります。別の関数をつかってより簡単に計算できないでしょうか?

  • SJISのCHAR(8)に入れられる文字数について

    SJISのCHAR(8)に入れられる文字数について MySQLのver 5.0にて、文字コードをSJISにして、カラムをCHAR(8)で設定した場合、 英数字1バイト文字の場合、16文字まで入れられるのでしょうか? それとも、単純に文字数で弾かれるのでしょうか? 現在、ver 4.0.24(文字コードは全部Cでいうところのchar1バイトで扱う)から、ver 5.0台に移行を考えており、移行するとした場合、PHPなどのプログラムをどの程度変更しなければならないかを考えています。 たとえば、CHAR(8)のカラムへデータを入れる場合、PHPで if( strlen($hoge) <= 16 ){ $hogeをCHAR(8)のカラムへINSERT処理 } とすると、$hogeが英数字だった場合、16文字まで、INSERT文にかかってしまうのですが、これで問題なく16字までINSERT出来るのかどうか知りたいのです。 以上、よろしくお願いします。

    • ベストアンサー
    • MySQL