MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
PHPの基礎 - 文字列のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
PHPの基礎 - 文字列
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == PHPでは複数のデータ型が存在するが、文字の集合を表すために使用されるデータ型が文字列である。<br> ここでは、文字列の取り扱いを記載する。<br> <br><br> == 文字列リテラル == 文字列を記述する場合、文字の集合をシングルクオーテーション<code>'</code>またはダブルクオーテーション<code>"</code>で囲む。<br> なお、<code><nowiki>''</nowiki></code>で囲む場合と<code>""</code>で囲む場合では、データの扱いが異なる。(詳細は、次のセクションに記載する)<br> '文字列' "文字列" <br> 複数行に渡る文字列を作成するには、ヒアドキュメントを使用することもできる。<br> ヒアドキュメントは、<<< <ID名>で始まり<ID名>で終わる間に記述する。ID名は、任意の文字列が指定できる。<br> また、ヒアドキュメントでは、シングルクオーテーション<code>'</code>、ダブルクオーテーション<code>"</code>、空白も文字として扱われる。<br> <<< ID 文字列1 文字列2 文字列3 ID <br> 以下の例では、ID名をDocumentとしている。<br> <syntaxhighlight lang="php"> <<< Document こんにちは。<br /> お元気ですか? Document </syntaxhighlight> <br><br> == 文字列の連結 == 文字列と他の文字列を連結して新しい文字列を作成するには、<code>.</code>を使用する。<br> '文字列1'.'文字列2' <br> 以下の例では、2つの文字列を連結して出力している。<br> <syntaxhighlight lang="php"> print 'こんにちは。'.'お元気ですか?'; $name = '佐藤'; print $name.'さん。こんにちは。'; </syntaxhighlight> <br> また、連結した文字列を変数に格納することもできる。<br> <syntaxhighlight lang="php"> $name = '佐藤'.'さん'; </syntaxhighlight> <br><br> == 文字列の出力(echo, print) == 文字列を出力するには、<code>echo</code>と<code>print</code>が存在する。<br> <br> <code>echo</code>の書式は、以下の通りである。<br> echo "" void echo(string $arg1 [, string $... ]) <br> <code>echo</code>は引数に指定した文字列を出力する。<br> 複数の文字列を続けて出力する場合、カンマ<code>,</code>で区切って文字列を指定する。<br> <syntaxhighlight lang="php"> echo 'こんにちは'; echo '出身地:', '東京都'; </syntaxhighlight> <br> 厳密にいうと、<code>echo</code>は関数ではなくPHPの言語構造の1つである。<br> そのため、引数を括弧で括る必要はなく、関数のように括弧で括って記述することもできる。<br> ただし、複数の文字列を引数に指定する場合、括弧で括らない方がよい。<br> <syntaxhighlight lang="php"> echo('こんにちは'); </syntaxhighlight> <br> <code>print</code>の書式は、以下の通りである。 print "" int print(string $arg) <br> <code>print</code>は、引数に指定した文字列を出力する。<code>echo</code>とは異なり、複数の引数を指定できない。<br> また、戻り値として常に1を返す。<br> <syntaxhighlight lang="php"> print 'こんにちは'; </syntaxhighlight> <br> <code>print</code>も<code>echo</code>と同様、関数ではなくPHPの言語構造の1つである。<br> そのため、引数を括弧で括る必要はなく、関数のように括弧で括って記述することもできる。<br> <syntaxhighlight lang="php"> print('こんにちは'); </syntaxhighlight> <br><br> == エスケープシーケンス == 文字列として入力できない特殊な文字(改行文字等)が存在する。<br> <br> このような特殊な文字を入力するために、\記号 + 1文字等を使用して、特殊文字等を記述することができる。<br> このような特殊な記述方法をエスケープシーケンスと呼ぶ。<br> <br> エスケープシーケンスとして用意されているものには、以下のようなものがある。<br> ¥n 改行 ¥r キャリッジリターン ¥t タブ ¥¥ ¥文字 ¥$ $文字 ¥( 左括弧 ¥) 右括弧 ¥[ 左括弧 ¥] 右括弧 ¥' シングルクオーテーション ¥" ダブルクオーテーション ¥nnn 8 進数表記 ¥xnn 16 進数表記 <br> エスケープシーケンスは、ダブルクオーテーションで囲まれた文字列の場合にのみ意味を持つ。<br> 例えば、以下のように使用する。<br> <syntaxhighlight lang="php"> print "こんにちは¥n"; print "名前は¥"伊藤¥"です"; // ダブルクオーテーションで囲まれた文字列の中で"を出力する場合 </syntaxhighlight> <br> また、ダブルクオーテーションで囲まれた文字列の中で¥文字を出力する場合、<code>¥¥</code>と記述する。<br> <br> <u>※注意</u><br> <u>シングルクオーテーションで囲まれた文字列の中でも、以下の2つだけはエスケープシーケンスとして扱われる。</u><br> ¥' シングルクオーテーション ¥¥ ¥文字 <br> <syntaxhighlight lang="php"> print '出身地は¥'大阪¥'です'; </syntaxhighlight> <br><br> == 変数展開 == 文字列をダブルクオーテーションで囲む場合やヒアドキュメントの場合、文字列に変数が存在する時、変数は格納されている値に置換される。<br> このような処理を変数展開と呼ぶ。<br> <br> 以下の例では、文字列に変数nameが記述されている。<br> この文字列を出力する時、"こんにちは。高橋 さん"と変数に格納されている値に置き換えて出力される。<br> <syntaxhighlight lang="php"> $name = '高橋'; echo "こんにちは。$name さん"; </syntaxhighlight> <br> 変数展開において、変数が記述された位置の後ろにアルファベットが続く場合は、どこまでが変数名なのか区別できない場合がある。<br> 以下の例では、変数colornamecolorを変数展開されてしまう。<br> <syntaxhighlight lang="php"> $colorname = 'red'; echo "frame is $colornamecolor"; </syntaxhighlight> <br> このように、どこまでが変数名なのか区別できない場合や配列変数等を使用する場合は、変数名を<code>{}</code>で囲んで記述する。<br> <syntaxhighlight lang="php"> $colorname = 'red'; echo "frame is ${colorname}color"; </syntaxhighlight> <br> <u>※注意</u><br> <u>シングルクオーテーションで囲んだ文字列で変数を記述しても、変数展開は行われない。</u><br> <br><br> == 文字関数 == ==== 英字の判別(ctype_alpha関数, ctype_alnum関数) ==== <code>ctype_alpha</code>関数は、文字列に英字のみが含まれているかどうかを確認する。<br> boolean ctype_alpha(string text) 引数の文字列に英字だけが含まれているかどうかを確認します。 英字はa~z、A~Zである。 英字のみの文字列の場合はTRUE、英字以外が含まれている場合はFALSEを返す。 引数 text 調べる文字列 戻り値 文字列が全て英字である場合はTRUE、それ以外の場合はFALSEを返す。 <br> <code>ctype_alnum</code>関数は、英字と数字のみが含まれているかを確認する。<br> boolean ctype_alnum(string text) 引数の文字列に、英字と数字のみが含まれているかを確認する。 英字はa~z、A~Z、数字は0~9である。 英字と数字のみの文字列の場合はTRUE、英字と数字以外が含まれている場合はFALSEを返す。 引数 text 確認する文字列 戻り値 文字列が全て英字と数字である場合はTRUE、それ以外の場合はFALSEを返す。 <br> <syntaxhighlight lang="php"> <?php $input_data = $_GET['text1']; function dispKekka($str) { $kekka1 = ctype_alpha($str); $kekka2 = ctype_alnum($str); print('調べる文字列は'.$str.'です<br>'); if($kekka1 == TRUE) { print('文字列は英字だけが含まれています<br><br>'); } else { if($kekka2 == TRUE) { print('文字列は英字及び数字だけが含まれています<br><br>'); } else { print('文字列は英数字以外の文字が含まれています<br><br>'); } } } $str = 'abcdef'; dispKekka($str); $str = 'abc@def'; dispKekka($str); $str = 'abc654def'; dispKekka($str); ?> </syntaxhighlight> <br> ==== 数字の判別(ctype_digit関数) ==== <code>ctype_digit</code>関数は、文字列に数字のみが含まれているかを確認する。<br> boolean ctype_digit(string text) 文字列に数字だけが含まれているかを確認する。 数字のみの場合はTRUE、数字以外が含まれている場合はFALSEを返す。 引数 text 調べる文字列 戻り値 文字列が全て数字の場合はTRUE、それ以外の場合はFALSEを返す。 <br> <u>※注意</u><br> <u>小数点等が含まれている場合も<code>FALSE</code>となる。この関数では、全ての文字が0~9である必要がある。</u><br> <u>引数に指定した値が、数値または数値として有効な文字列かどうかを判別する場合は、</u><br> <u>数字または数値文字列の判別(<code>is_numeric</code>関数)セクションを参照すること。</u><br> <syntaxhighlight lang="php"> <?php function dispKekka($str) { $bRet = ctype_digit($str); print('調べる文字列は'.$str.'です<br>'); if($bRet) { print('文字列は数字だけが含まれています<br><br>'); } else { print('文字列は数字以外の文字が含まれています<br><br>'); } } $str = '01234'; dispKekka($str); $str = 'abc998'; dispKekka($str); $str = '123.45'; dispKekka($str); ?> </syntaxhighlight> <br> ==== 大文字・小文字の判別(ctype_upper関数, ctype_lower関数) ==== <code>ctype_upper</code>関数を使用して、文字列が全て大文字かどうかを確認する。<br> また、<code>ctype_lower</code>関数を使用して、全て小文字かどうかを確認する。<br> boolean ctype_upper(string text) 引数の文字列が大文字かどうかを確認する。 引数 text 調べる文字列 戻り値 引数の全ての文字が大文字の場合はTRUE、それ以外の場合はFALSEを返す。 英字以外の文字が含まれている場合はFALSEとなる。 例えば、数字が含まれている場合はFALSEが返る。 <br> boolean ctype_lower(string text) 引数の文字列が小文字かどうかを確認する。 引数 text 調べる文字列 戻り値 引数の全ての文字が小文字の場合はTRUE、それ以外の場合はFALSEを返す。 <br> <syntaxhighlight lang="php"> <?php function dispKekka($str) { $kekka1 = ctype_upper($str); $kekka2 = ctype_lower($str); print('調べる文字列は'.$str.'です<br>'); if($kekka1 == TRUE) { print('文字列は大文字だけです<br><br>'); } else { if($kekka2 == TRUE) { print('文字列は小文字だけです<br><br>'); } else { print('文字列は大文字小文字が混合しています<br><br>'); } } } $str = 'abc'; dispKekka($str); $str = 'ABC'; dispKekka($str); $str = 'abc89'; dispKekka($str); $str = 'ABC89'; dispKekka($str); ?> </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:Web]]
PHPの基礎 - 文字列
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse