• ベストアンサー

【PHP】変数がアルファベットかどうか知りたい

PHP初心者です。 わからない変数 $x があるとして、これがアルファベット(1文字)か否かを知りたい場合どうすればいいでしょうか? a~zを全部比較するのは大変ですし。 含まれているかどうかではなく「完全一致」の比較です。 お詳しい方、よろしくお願いいたします。

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

echo preg_match('/^[a-zA-Z]$/', $x);

takosuke88
質問者

お礼

なるほど! メタ文字ってこうやって使うのですね。 これは使える。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

小文字だけですかね 別の方法として ctype_lower($x) && (strlen($x) == 1)

takosuke88
質問者

お礼

アルファベット(大文字・小文字)かどうかを調べる関数もあったなんて! ctype_lower() これは手元の辞書にはないです。 PHPって本当に関数が多いですね… 大変だ… とにかくありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

> a~zを全部比較するのは大変ですし。 そう、だからこそプログラミングを学ぶのです。 正規表現と言うのがあります。最初は取っ付きにくいですが、慣れてしまうとこんなに使えるモノはありません。 #1さんのpreg_matchの他、 ereg("^[a-z]$",$x) mb_ereg等もあります。たいていのものはpreg_matchでOKです。 http://www.mnet.ne.jp/~nakama/ http://www.kt.rim.or.jp/~kbk/regex/regex.html

takosuke88
質問者

お礼

ereg もあったんですね。 方法は1つじゃないわけかあ。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • アルファベットを排除したい

    こんにちは。 よく掲示板の迷惑書き込み対策などで、 if ($in{'comment'} !~ /(\x82[\x9F-\xF2])|(\x83[\x40-\x96])/) { &error("日本語を書いてください。");} というのがあります。 これは、ひらがなかカタカナが入っていない書き込みをするとエラーとなるようにしているものだと思うのですが、これを「アルファベットが入っていたらエラーとなる」ようにするにはこの文字コード?のようなものをどのように指定したらいいでしょうか。 アンケートのようなCGIで、アルファベットのみを無秩序に羅列したスパムに困っているのですが、漢字のみの投稿がある可能性があり、「ひらがな・カタカナが入っていない」を条件にすると困ることがあります。 逆に、普通に投稿する場合だったらアルファベットが入ることはありえないタイプのアンケートなので、a~z、A~Zが入っていたらエラーになるようにしたいと思っています。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • PHPで2つの変数を表示する方法

    PHP初心者ですがお願いします <?php $test[0]="abcdefghi"; $test[1]="abcdefg"; $test[2]="abcde"; $test[3]="abcdefghij"; $test[4]="abcx"; $replace_1="x"; $result_1="opqr"; $count="0"; while($count <= 4) { $str[$count]= str_replace($replace_1,$result_1,$str[$count]); $count++; } ?> 変数の中身をreplaceで置き換えた後今度は4つの変数中で一番文字数の多い変数のみを表示し その変数の文字数を表示させたいのですがどうすればいいでしょうか mb_strlenで文字数を出すのはできたのですが一番大きい変数を選ぶところがわからないです

    • 締切済み
    • PHP
  • PHPで特定の変数値を取り出す

    PHPの関数で変数に $str="1-a"; と格納されているものがあります。 ”-”ハイフンまでの文字「1」を取り出したい。 ”-”ハイフン以降の文字「a」を取り出したい。 とやりたいのですが いい関数はございませんでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpの変数について

    fedora3,apache2.0,php4.3.11で構成しています。 参考書やサイトを見ながら学習中なのですが、初歩でつまづいています。 <html><body> <?php print $YourName; ?>さん、こんにちは。 </body></html> というa.phpと名づけたファイルにIEでアクセスしているのですが、このときに「サーバ名/a.php?YourName="kokoro"」と打てば、$YourNameという変数に"kokoro"という文字が代入されるとあるのですが、代入されません。参考書のPHPは4.0です。他の参考にしているサイトのPHPのバージョンは分かりません。

    • ベストアンサー
    • PHP
  • 代数学 方程式に任意の数字を入れて残りの変数を出す

    y= a・x + b (y:定数) という式があったとして、右辺にある任意の2変数に文字を入れて残りの変数を決定したいと思います。 yと一致しなかったら計算打ち切りという処理にしたいのですが、問題は式の本数と変数の個数が1000個以上あるのです。(できれば式と変数の数を任意とする関数を書きたい) 上記の例なら a = (y-b)/x x = (y-b)/a b = y - ax と全部場合分けすることもできなくはないですが、変数が1000個となると全部人間が場合分けするのは非現実的です。 なにか良いアルゴリズムないでしょうか?

  • Java 多数のアルファベット(アルファベット順)と文字を比較

    こんにちは。 いつも検索して使っていますが、 今回、初めて質問させていただきます。 言語はJavaです。 私は初心者、学習中の者です。 キーボードから入力された文字(一文字、char型)が、 アルファベット順でFからZ(大文字、小文字の区別なく)のうちのどれかに当てはまるかどうかを調べたいです。 例えば、indexOfを使って'F'から'Z'、また'f'から'z'を一つずつ照合する方法も考えましたが、 FからZを全部、しかも大文字小文字の2回、書かなければならず、 もっと良い方法があるはずだと思い、探しています。 ご存知の方、回答いただければ幸いです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • アルファベットの数はいくつある?

    >人間の染色体は23対ある。 >またアルファベットは全部で23文字である。 >これは偶然の一致なのか..。 http://www.yamaguchi.net/archives/000883.html ここで言われていることがわかりません。 たとえば英語のアルファベットだったら、26個あります。 英語以外の印欧語で、23文字からなる言語があるのでしょうか。

  • 数学の変数にはなぜ「x」が使われるのですか?

    数学の変数にはなぜ「x」が使われるのですか? 例えば、一次関数の式 y=a*x+b では、変数に「x」、従属変数に「y」、 定数に「a」と「b」を使っていますが、 なぜ変数に「x」という文字が使われるのですか? アルファベットの後ろから3番目の「x」が使われる、何らかの理由、 あるいは歴史的な経緯がありますか? 数列{an}の添え字の「n」は「number」の頭文字を採ったであろう ことは推測できますが、 変数の「x」はなぜ「x」が使われるのでしょうか? できれば、中学校卒業程度の数学の学力の子供にわかる説明を お願い致します。 よろしくお願い申し上げます。

  • PHPでFORMから来る変数名を変数にするには

    PHPでFORMから来る変数名を変数にするにはどうしたらよろしいでしょうか? 可変変数など調べたのですが、値を変数にすることは出来ても変数名を変数にする事は難しいようです。 <form action="reg.php"> <input type = "text" name = "comment"> <input type = "submit"> </form> このform内のnameが動的に変わるプログラムで,reg.phpにおいて名前(今ならcomment)を変数に格納したいと思っています。 reg.php 本来なら $comment = _REQUEST['comment']; とすると思うのですが、commentが動的に変動する場合、_REQUEST内をどう書き換えれば良いかが分からず困っています $dynamic_name = _REQUEST['ここをどう書けばよいでしょうか'] このことを考えてから今はform内ですが、formでなくてもどうやって書いてよいか分からず疑問に思いました 例えば $test = 'abc'; としたとき $test_name にtestという文字列を入れたい場合(つまりabcの変数名)どうやって入れたらよいのでしょうか?(もちろんtestと言う名前は動的に変わります) 詳しい方いらっしゃいましたらご回答いただければと思います。 良いアドバイスございましたら教えてください よろしくお願いします

    • 締切済み
    • PHP
  • ドル記号+アルファベット

    返りや変数の「値」の中にどうしても $+アルファベットのものがあります。これは覆せない前提です。 このまま何らかの処理 (たとえば置換) に渡すと、あらかじめ値を書き出すか否かに関わらず、$ が文字としてみなされず、どうしても変数として展開されてしまいます。 もらう値については事前にエスケープできない (上記のとおり、前提です) ので、どうすればよいでしょう。