S:PHPリファレンス
Sに属するゴルフ用語を紹介しています。
SoapClient()
SoapClientはSoapClientオブジェクトを生成します。WSDLを指定する場合はWSDファイルのURLまたはNULLに指定します。非WSDLモードで生成する場合は、WSDファイルにNULLを指定し、作成オプションにリクエストを行うURL(location)やSOAPサービスの名前空間(uri)などのオプションを指定します。
serialize()
serialize関数は与えられた変数を保存可能な値に変換します。配列など、そのままでは保存しにくい配列値などの処理に使用することができます。
session_destroy()
session_destroy関数はセッションへ登録された全てのデータを破棄します。
session_id()
session_id関数はセッションIDを取得します。パラメータを指定しない場合は現在のセッションのセッションIDを取得します。パラメータにセッションIDが指定された場合はセッションIDを指定値へ置き換えます。セッションIDを置き換える場合はsession_start関数実行前に実行される必要があります。
既定の設定では、セッションデータは「sess_」+「セッションID」という名前のファイルに保存されます。
例)「sess_a2havf04us5p8o030no4j29h0」
この場合、セッションIDを明示的に指定するときに使用できる文字は半角の英数字とハイフンに限定されます。
session_is_registered()
session_is_registered関数は、指定された名前のセッションデータが既存するかどうかを調べるときに使用します。既存する場合はTRUEが返されます。この関数は、$_SESSIONに格納されたセッションデータの存在確認のための使用はできません。$_SESSIONに格納したセッションデータの存在確認にはisset関数を使用します。
session_name()
session_name関数はセッション名の設定を行います。セッション名はクッキーやURLにセッションIDを格納する場合に使用されます。
例えば、URLにセッションIDが含まれる場合「test.php?=PHPSESSID=esman4skr0as6khvm7」のようなURLの一部を構成するため、このセッション名の既定値はPHP.iniのsession.nameに「PHPSESSID」と設定されています。
session_register()
session_register関数は、指定された1つ以上の変数をセッションデータとして登録します。PHP4,1,0以降では、session_register関数を使用せずに$_SESSIONの使用が推奨されています。また、register_globalsがOFFに設定されている場合は、この関数によるセッションデータの登録は機能しません。PHP4,2,0以降はデフォルトでregister_globalsがOFFに設定されており、この関数を使用せずに$_SESSIONでセッションデータを作成する方が無難といえます。
session_start()
session_start関数はセッションを開始します。PHP,iniのsession.auto_startが1の場合(既定値:0)はセッションが自動開始されますが、そうでない場合は明示的にセッションを開始する必要があります。
セッション名や保存先ディレクトリ、セッションID等を設定する場合はsession_start関数でセッションを開始する前に設定しておく必要があります。
session_unregister()
session_unregister関数は、指定された変数をセッションデータから削除します。この関数は$_SESSIONに格納されたセッションデータの削除は行いません。
session_write_close()
session_write_close関数はセッションデータを書き込んでセッションを終了します。この関数を実行しなくとも通常はスクリプト終了時にセッションデータは書き込まれます。ただし、セッションデータの書き込み時は同時書き込みを回避するためのロックが行われるので、場合によってはパフォーマンスの低下を招くことも考えられるため、スクリプトの終了時に書き込み処理を行うのではなく、セッションデータの取り扱いが終了した時点でsession_write_close関数を実行し、データを即書き込むという手法をとることが可能です。
set_error_handler()
set_error_handler関数はユーザー定義のエラーハンドラを設定します。この関数は実行時のエラー処理をユーザーが定義するために使用します。指定された関数は、実行中のスクリプトにエラーが発生した際、呼び出されます。
set_magic_quotes_runtime()
set_magic_quotes_runtime関数は、magic_quotes_runtimeを設定するときに使用します。Onに設定する場合は1、Offに設定する場合は0を指定します。magic_quotes_runtimeがOnの場合、ランタイム値(ファイルやデータベースなどから取得した値)をバックスラッシュでエスケープされます。この設定の既定値はOffですが、万全を期して予期せぬバックスラッシュが付加されないようにmagic_quotes_runtimeをOffにしておくほうがよいでしょう。
set_time_limit()
set_time_limit関数はsy堀のタイムアウト値を設定します。既定値(PHP,iniのmax_execution_time)では、処理が30秒を超えるとタイムアウトとなり終了してしまうため、データの処理など、ブラウザ出力を伴わない長時間かかる処理を実行したいような場合にset_time_limit関数でタイムアウト値を設定します。時間制限無しで実行したい場合は0を指定します。
setcookie()
setcookie関数はクッキーを送信します。名前と値に加え、有効期限やパス、ドメインを指定できます。SSL通信時のみにクッキーを送信するかどうかを指定するには6番目のパラメータに「1」をセットします。送信されたクッキーの値はURLエンコードされ、受信時にデコードされます。エンコードせずにクッキーを送信したい場合はsetrawcookie関数を使用します。setrawcookie関数はPHP5で追加されました。
送信したクッキーは次回のページ表示時から$_COOKIEや$HTTP_COOKIE_VARSを使用してアクセスが可能です。例えば、「test」という名前のクッキーを参照するには「$_COOKIE["test"]」を参照します。
クッキーの有効とする期限はタイムスタンプで指定します。time関数を使用して現時の時刻を基準に「time()+600」(現在の600秒後)のように指定する方法がよく使用されます。省略したり、過去の時刻をセットするとブラウザを閉じる際にクッキーは削除されるため、クッキーを削除する場合は値に「""」をセットし、有効期限に過去の時刻をセットします。
setlocale()
setlocale関数はロケール情報を設定します。ロケール設定は数値の区切り文字や日時の表現方法を決定します。
settype()
settype関数は与えられた変数の型を設定します。先の処理を考えて変数の型を変換しておきたい場合などに使用できます。
simplexml_load_file()
simplexml_load_file関数は、指定されたXML文字列を解析してオブジェクトにセットします。作成されたオブジェクトを使用して一覧表示したり、特定の要素にアクセスするなどXML文字列の操作が可能です。
simplexml_load_string()
simplexml_load_string関数は指定されたXMLドキュメントを解析してオブジェクトにセットします。
sin()
sin関数は数値のサインを返します。
sleep()
sleep関数は処理を一時停止します。活用例としては、処理のリトライがあげられます。例えば、ファイルが何らかの事情で開けなかったときに、即エラーとして処理を終了させるのではなく、一定時間を空けてから再試行するという方法です。この場合に、sleep関数で処理を一時停止させた後に何度かファイルオープンを試みることが可能です。
socket_get_status()
socket_get_status関数はソケット情報を返します。
socket_set_timeout()
socket_set_timeout関数はソケット接続のタイムアウト値の設定をします。
sort()
sort関数は配列を昇順にソートします。この関数は、 パラメータの要素に対して新しいキーを割り当てますが、 その際、単純にキーを並べ替える代わりに、すでに割り当てられている既存のキーを削除してしまうため注意が必要です。
split()
split関数は指定された文字列を正規表現で分割します。分割する最大回数が指定された場合は、指定回数分だけ要素を分割します。
sprintf()
sprintf関数は書式かされた文字列を表示する関数。書式化するという意味では、printf関数と同じです。異なる点は、戻り値として書式化された文字列を返すことです。
sqlite_array_query()
sqlite_array_query関数はSQLコマンドを実行して結果を配列に返します。
sqlite_changes()
sqlite_changes関数は直近のINSERT、UPDATE、DELETE各コマンドによって変更された行数を取得します。INSERTコマンドの実行によって1件のデータを追加した場合には1を、UPDATEコマンドによって5件のデータを変更した場合には5が返されます。
sqlite_close()
sqlite_close関数はオーブンされたSQLiteデータベースを閉じます。
sqlite_create_function()
sqlite_create_function関数はSQLステートメントで使用するために"通常の"ユーザー定義関係を登録します。
sqlite_fetch_array()
sqlite_fetch_array関数は結果セットから行を配列として取得します。取得した行がセットされる配列のインデックスは、数値インデックスとフィールド名をで設定可能で、既定値(SQLITE_BOTH)では連想配列の添字と数値の添字の両タイプのインデックスが作成されます。
sqlite_fetch_single()
sqlite_fetch_single関数は結果セットにある最初のフィールドの値を文字列として取得します。集計値を取得するなど、単一の値のみを必要とするコマンドでの使用が便利です。
※sqlite_fetch_string関係はsqlite_fetch_single関係の別名。
sqlite_last_error()
sqlite_last_error関数は直近で発生したSQLiteのエラーコードを取得します。表示目的で使用する場合はsqlite_error_string関数にエラーコードを渡すとエラーメッセージに変換されて見やすくなります。
sqlite_last_insert_rowid()
sqlite_last_insert_rowid関数は追加されたデータのID(自動採番によるフィールド)を取得します。SQLiteで自動採番フィールドの設定をするには、フィールド定義時に「INTEGERPRIMARY KEY)を宣言します。
この設定によりデータ追加時に値を明示的に指定しない場合は、idフィールドに連番が割り振られます。
sqlite_num_fields()
sqlite_num_fields関数は結果セットのフィールド数を返します。
sqlite_num_rows()
sqlite_num_rows関数は結果セットの行数を返します。
sqlite_open()
sqlite_open関数はSQLiteデータベースをオープンします。権限や、エラーメッセージの格納先を指定することができます。開くデータベースは、絶対パス、相対パスでファイル名が指定可能で、拡張子はSQLite固有のものではないため「test,sqlite」や「test,db」「test」などのファイル名の指定ができます。存在しないファイル名を指定した場合は新たにデータベースが生成され、ファイル名に「:memory:」と指定するとデータベースがメモリ上に作成されます。この場合、データベースはファイルとして保存されず、処理終了時に削除されるので一時的な処理用となります。
sqlite_query()
sqlite_query関数はSQLコマンドを実行します。データベース接続とSQLコマンドは順番を入れ替えても問題ありません。
sqlite_seek()
sqlite_seek関数は結果セットの指定された位置へ移動します。
sqrt()
sqrt関数は数値の平方根を返します。
srand()
srand関数は数値の乱数ジェネレータを初期化します。mt_srand関数は、srand関数の改良版です。mt_srand関数と同じように、使われているシードは圧倒的に「(double)microtime()*1000」が多いです。
stat()
stat関数は指定されたファイル情報を取得します。返される配列は前半が数値インデックス、後半が文字列インデックスで同じ内容がセットされます。つまり、「0」~「12」のインデックスまたは文字列インデックスを使用して参照することができます。
str_pad()
str_pad関数は文字列を埋める関数。文字列の左右を指定した文字列で埋めます。
strcasecmp()
strcasecmp関数は文字列を大文字、小文字の区別をせずに比較する関数です。
strcmp()
strcmp関数は、文字列を比較します。strcasecmpとほぼ同じ働きをしますが、strcmp関数の場合主時と小文字を区別して比較する点に注意が必要です。
strftime()
strftime関数はロケール設定に基づき日時を書式化します。
strip_tags()
strip_tags関数は文字列からPHPタグやHTMLタグを取り除く関数です。なお、取り除く必要がないタグについては二番目のパラメータで指定することもできます。
stripslashes()
stripslashes関数は文字列のエスケープを解除する関数で、addsalashes関数と反対の処理を行います。
stristr()
stristr関数は大文字と小文字を区別することなく文字列を検索する関数です。検索した文字列が見つかった場所から後ろの文字列を戻り値として返します。
strlen()
strlen関数は文字列の長さを返す関数です。返される値はバイト数ですので、日本語の場合1文字で2という数字を返します(半角英数字で1)。
strncmp()
strncmp関数は指定した文字数まで文字列を比較する関数です(大文字と小文字は区別します)
strpos()
strpos関数は文字列を検索して最初に見つかった位置を返す関数です。検索を開始する位置も指定可能となっています。
strrchr()
strrchr関数は文字列から指定された文字を検索して、最後に見つかった場所以降の文字列を返します。ドメイン名など、特定の文字以降の文字列を切り取って取得する用途で使うことができます。
strrev()
strrev関数は文字列を逆にします。例)「abc」→「cba」
strrpos()
strrpos関数は文字列から文字を検索して、最後に見つかった位置を返します。strpos関数と似ていますが、strpos関数は検索した文字列が最初に見つかった場所を返す、という点で異なります。また、以前ではstrrpos関数で指定する検索文字は一文字ですが、PHP5では文字列全体が使用されます。
strstr()
strstr関数は大文字と小文字を区別して文字列を検索します。検索した文字列が見つかった場所から後ろの文字列を返します。例)「ABCDEFGHIJKLMN」から「efg」を検索→「EFGHIJKLMN」を返す。
文字列を探して一部を取得するだけではなく、文字列が含まれるかを調べるという使用法もあります。見つかったときの戻り値が「0」でない「TRUE」として使えることを利用して、文字列が含まれるか調べて処理を分岐するif文で使われています。
strtolower()
strtolower関数は文字列を小文字にします。文字列を比較する前には、大文字と小文字をそろえる目的で使用されます。
strtotime()
strtotime関数は英文形式の日付をタイムスタンプへ変換します。
strtoupper()
strtoupper関数は文字列を大文字にします。
strtr()
strtr関数は文字列を置き換えます。置き換え前後の文字列は配列で指定することも可能です。文字列で指定された場合は、同じ長さの文字列が処理され、一方より長い部分は無視されます。
strval()
strval関数は指定された変数を文字列に変換します。
substr()
substr関数は文字列の一部を抽出します。OS名の先頭3文字が「win」であればwindows用の処理をするなど幅広く利用されています。ソフトのうちの約7割がこの関数を使っています。
「substr(x,o,n)」といった記述の「文字列xの先頭からn文字を取り出す」という使われ方がよくされています。
substr_count()
substr_count関数は文字列の出現回を数えます。活用例として、CSVやログデータの形式チェックがあります。各フィールドの区切り文字が正しい数あるかどうか(例:6項目なら区切り文字は5回出現する)を調べることで、形式をチェックできます。
substr_replace()
substr_replace関数は文字列の一部を置き換えます。3.4番目のパラメータでどの部分を置き換えるかを指定、2番目のパラメータで置き換え後の文字列を指定します。4番目のパラメータで指定する置き換え部のサイズを省略すると、指定位置以降の文字列すべてが対象となります。
開始位置が正の場合、先頭からの位置となり、開始位置が負の場合、終端からの位置となります。文字数が正の場合、置換する文字数となり、文字数が負の場合、終端からの文字数までが置換文字数となります。
system()
system関数は指定されたコマンドを実行して結果を出力します。コマンド実行結果の戻り値を受け取ることも可能です。