文字列

関数一覧

分類関数名External Site意味
変換base64_decodeExternal SiteMIME base64 方式によりエンコードされたデータをデコードする
変換base64_encodeExternal SiteMIME base64 方式でデータをエンコードする
取得get_headersExternal SiteHTTP リクエストに対するレスポンス内で サーバによって送出された全てのヘッダを取得する
取得get_meta_tagsExternal Siteファイル上のすべてのメタタグ情報を配列に展開する
変換http_build_queryExternal SiteURL エンコードされたクエリ文字列を生成する
変換parse_urlExternal SiteURL を解釈し、その構成要素を返す
変換rawurldecodeExternal SiteURL エンコードされた文字列をデコードする
変換rawurlencodeExternal SiteRFC 3986 に基づき URL エンコードを行う
変換urldecodeExternal SiteURL エンコードされた文字列をデコードする
変換urlencodeExternal Site文字列を URL エンコードする
変換addcslashesExternal SiteC 言語と同様にスラッシュで文字列をクォートする
変換addslashesExternal Site文字列をスラッシュでクォートする
変換bin2hexExternal Siteバイナリデータを16進表現に変換する
変換chopExternal Sitertrim のエイリアス
変換chrExternal SiteASCII コードに対応した1文字を返す
変換chunk_splitExternal Site文字列をより小さな部分に分割する
変換convert_cyr_stringExternal Siteキリル文字セットを他のものに変換する
変換convert_uudecodeExternal Siteuuencode された文字列をデコードする
変換convert_uuencodeExternal Site文字列を uuencode する
情報count_charsExternal Site文字列で使用されている文字に関する情報を返す
計算crc32External Site文字列の crc32 多項式計算を行う
変換cryptExternal Site文字列の一方向のハッシュ化を行う
入出力echoExternal Site1 つ以上の文字列を出力する
変換explodeExternal Site文字列を区切り文字列により分割して配列で返す
入出力fprintfExternal Siteフォーマットされた文字列をストリームに書き込む
情報get_html_translation_tableExternal Sitehtmlspecialchars および htmlentities で使用される変換テーブルを返す
変換hebrevExternal Site論理表記のヘブライ語を物理表記に変換する
変換hebrevcExternal Site論理表記のヘブライ語を、改行の変換も含めて物理表記に変換する
変換html_entity_decodeExternal SiteHTML エンティティを適切な文字に変換する
変換htmlentitiesExternal Site適用可能な文字を全て HTML エンティティに変換する
変換htmlspecialchars_decodeExternal Site特殊な HTML エンティティを文字に戻す
変換htmlspecialcharsExternal Site特殊文字を HTML エンティティに変換する
変換implodeExternal Site配列要素を文字列により連結して文字列として返す
変換joinExternal Siteimplode のエイリアス
変換lcfirstExternal Site文字列の最初の文字を小文字にする
情報levenshteinExternal Site二つの文字列のレーベンシュタイン距離を計算する
情報localeconvExternal Site数値に関するフォーマット情報を得る
変換ltrimExternal Site文字列の最初から空白 (もしくはその他の文字) を取り除く
計算md5_fileExternal Site指定したファイルのMD5ハッシュ値を計算する
計算md5External Site文字列のmd5ハッシュ値を計算する
計算metaphoneExternal Site文字列の metaphone キーを計算する
変換money_formatExternal Site数値を金額文字列にフォーマットする
情報nl_langinfoExternal Site言語およびロケール情報を検索する
変換nl2brExternal Site改行文字の前に HTML の改行タグを挿入する
変換number_formatExternal Site数字を千位毎にグループ化してフォーマットする
変換ordExternal Site先頭文字の ASCII コードを数値で返す
変換parse_strExternal SiteURLクオート文字列を処理し、変数に代入する
入出力printExternal Site文字列を出力する
入出力printfExternal Siteフォーマット済みの文字列を出力する
変換quoted_printable_decodeExternal Sitequoted-printable 文字列を 8 ビット文字列に変換する
変換quoted_printable_encodeExternal Site8 ビット文字列を quoted-printable 文字列に変換する
変換quotemetaExternal Siteメタ文字をクォートする
変換rtrimExternal Site文字列の最後から空白 (もしくは他の文字) を削除する
設定setlocaleExternal Siteロケール情報を設定する
計算sha1_fileExternal Siteファイルの sha1 ハッシュを計算する
計算sha1External Site文字列の sha1 ハッシュを計算する
計算similar_textExternal Site二つの文字列の間の類似性を計算する
計算soundexExternal Site文字列の soundex キーを計算する
変換sprintfExternal Siteフォーマットされた文字列を返す
入出力sscanfExternal Siteフォーマット文字列に基づき入力を処理する
変換str_getcsvExternal SiteCSV 文字列をパースして配列に格納する
変換str_ireplaceExternal Site大文字小文字を区別しない str_replace
変換str_padExternal Site文字列を固定長の他の文字列で埋める
変換str_repeatExternal Site文字列を反復する
変換str_replaceExternal Site検索文字列に一致したすべての文字列を置換する
変換str_rot13External Site文字列に rot13 変換を行う
変換str_shuffleExternal Site文字列をランダムにシャッフルする
変換str_splitExternal Site文字列を配列に変換する
情報str_word_countExternal Site文字列に使用されている単語についての情報を返す
比較strcasecmpExternal Site大文字小文字を区別しないバイナリセーフな文字列比較を行う
探索strchrExternal Sitestrstr のエイリアス
比較strcmpExternal Siteバイナリセーフな文字列比較
情報strcollExternal Siteロケールに基づく文字列比較
情報strcspnExternal Siteマスクにマッチしない最初のセグメントの長さを返す
変換strip_tagsExternal Site文字列から HTML および PHP タグを取り除く
変換stripcslashesExternal Siteaddcslashes でクォートされた文字列をアンクォートする
探索striposExternal Site大文字小文字を区別せずに文字列が最初に現れる位置を探す
変換stripslashesExternal Siteクォートされた文字列のクォート部分を取り除く
探索stristrExternal Site大文字小文字を区別しない strstr
情報strlenExternal Site文字列の長さを得る
比較strnatcasecmpExternal Site"自然順"アルゴリズムにより大文字小文字を区別しない文字列比較を行う
比較strnatcmpExternal Site"自然順"アルゴリズムにより文字列比較を行う
比較strncasecmpExternal Siteバイナリセーフで大文字小文字を区別しない文字列比較を、最初の n 文字について行う
比較strncmpExternal Site最初の n 文字についてバイナリセーフな文字列比較を行う
探索strpbrkExternal Site文字列の中から任意の文字を探す
探索strposExternal Site文字列が最初に現れる場所を見つける
探索strrchrExternal Site文字列中に文字が最後に現れる場所を取得する
変換strrevExternal Site文字列を逆順にする
探索strriposExternal Site文字列中で、特定の(大文字小文字を区別しない)文字列が最後に現れた位置を探す
探索strrposExternal Site文字列中に、ある部分文字列が最後に現れる場所を探す
探索strspnExternal Site指定したマスク内に含まれる文字からなる文字列の最初のセグメントの長さを探す
探索strstrExternal Site文字列が最初に現れる位置を見つける
変換strtokExternal Site文字列をトークンに分割する
変換strtolowerExternal Site文字列を小文字にする
変換strtoupperExternal Site文字列を大文字にする
変換strtrExternal Site文字の変換あるいは部分文字列の置換を行う
比較substr_compareExternal Site指定した位置から指定した長さの 2 つの文字列について、バイナリ対応で比較する
情報substr_countExternal Site副文字列の出現回数を数える
変換substr_replaceExternal Site文字列の一部を置換する
取得substrExternal Site文字列の一部分を返す
変換trimExternal Site文字列の先頭および末尾にあるホワイトスペースを取り除く
変換ucfirstExternal Site文字列の最初の文字を大文字にする
変換ucwordsExternal Site文字列の各単語の最初の文字を大文字にする
入出力vfprintfExternal Siteフォーマットされた文字列をストリームに書き込む
入出力vprintfExternal Siteフォーマットされた文字列を出力する
変換vsprintfExternal Siteフォーマットされた文字列を返す
変換wordwrapExternal Site文字列分割文字を使用して、指定した文字数に文字列を分割する

注意点

シングルクオートでも ¥ が有効

perlの場合はシングルクオートで囲むとエスケープ文字 \ の解釈と変数展開は行わないが、
phpの場合はシングルクオートでもエスケープ文字 \ を解釈し、変数展開は行わない。
つまり、"\\"も'\\'も半角の「\」1文字を表し、"\\" === '\\' である。

正規表現での ¥ の扱い

perlと違い、phpでは正規表現は文字列として与えるため、\ の扱いがややこしくなる。

<?php
$yen3 = "\\\\\\"; //3個の半角\
echo preg_match('/\\/', $yen3)."\n"; // エラー
echo preg_match('/\\\/', $yen3)."\n"; // 3
echo preg_match('/\\\\/', $yen3)."\n"; // 3
echo preg_match('/\\\\\/', $yen3)."\n"; // エラー
echo preg_match('/\\\\\\/', $yen3)."\n"; // エラー
echo preg_match('/\\\\\\\/', $yen3)."\n"; // 1
echo preg_match('/\\\\\\\\/', $yen3)."\n"; // 1
?>

文字

先頭文字のASCIIコードを返す/ASCIIコードを文字で返す

//文字⇔文字コード
echo ord('A')."\n"; //65
echo chr(65)."\n"; //A

文字列の情報

文字列の長さ

echo strlen($str);      // 文字列の長さを取得
echo mb_strlen($mbstr); // マルチバイト文字列の長さを取得

文字列の生成

//文字列の代入
echo "abc\n"; //ダブルクオート。abcと改行文字
echo 'abc\n'; //シングルクオート。ABCと\nという文字列

空文字列

$str1 = '';
$str2 = "";

連続する文字列を生成

//指定した回数だけ連続した文字列を生成
echo str_repeat('abc', 3); //'abcabcabc'を返す

文字列Aの前後を文字列Bで指定した長さだけ埋める

//
echo str_pad('abc', 10, 'ABC', STR_PAD_BOTH)."\n";  // 両端埋め 'ABCabcABCA';
echo str_pad('abc', 10, 'ABC', STR_PAD_LEFT)."\n";  // 左端埋め 'ABCABCAabc';
echo str_pad('abc', 10, 'ABC', STR_PAD_RIGHT)."\n"; // 右端埋め 'abcABCABCA';
echo str_pad('abc', 10, 'ABC')."\n"; // デフォルト(右端埋め)'abcABCABCA';

文字列の結合

//文字列の結合
echo 'abc'.'xyz'; 
//変数の内容に結合してから代入
$str .= 'xyz';

文字列の切り出し

$str = 'abcdef';
echo $str[2];	// 'c'が返る
echo substr($str,2, 1);	// 'c'が返る

echo substr($str,2, 3);	// 'cde'が返る

文字列の置き換え

str_replace($search,$replace,$subject)
$subject内を検索し$searchに一致した文字列を$replaceに置き換える。
$searchが配列で$replaceも配列の場合は対応した索引同士の置き換えが行われ、
$searchが配列で$replaceが文字列の場合は$searchに対応した文字列すべてを1つの文字列$replaceに置き換える。
また、$subjectが配列の場合、$subjectの要素1つ1つに置き換え処理を行い、配列を返す。
$str_subject = '#ABCabc#';
$arr_subject = array('#Aa#','#Bb#','#Cc#');
$str_search = 'a';
$arr_search = array('a','b','c');
$str_replace = 'x';
$arr_replace = array('X','Y','Z');

echo str_replace($str_search, $str_replace, $str_subject)."\n";
echo str_replace($arr_search, $str_replace, $str_subject)."\n";
echo str_replace($arr_search, $arr_replace, $str_subject)."\n";

print_r(str_replace($str_search, $str_replace, $arr_subject));
print_r(str_replace($arr_search, $str_replace, $arr_subject));
print_r(str_replace($arr_search, $arr_replace, $arr_subject));

文字列のシャッフル

//文字単位でランダムに置き換えた文字列を返す
echo str_shuffle('abcdef');

文字列の変換

タグの除去

//HTML、PHPタグを除去した文字列を返す。
echo strip_tags($string)

//許可するタグを指定する。
//<div>指定で<DIV></DIV> <div class="a"></div> </DIV aaa>等も許可する
echo strip_tags($string, '<div>')

<が閉じていないものはそれ以降削ってしまうので注意が必要。
また、許可するタグを指定すると属性値も含めて許可するのでセキュリティ的には危険。

HTMLタグを無効化する

// HTMLで意味を持つ文字 & < > " を&amp; &lt; &gt; &quot;に置き換える。~
htmlspecialchars($string);

// シングルクオートも含む意味を持つ文字を置き換える
// 'でセキュリティホールを攻撃できる可能性があるためこれも無効化すべき。
htmlspecialchars($string, ENT_QUOTES);

URLエンコード

urlencode($str)
[\-\_\.A-Za-z0-9]以外の文字を文字コードに対応した%xx形式に変換する。
urldecode($str)
文字コードに対応した%xx形式の文字に復号する。

文字列の探索

// 探索文字列が最初に現れたオフセットを返す。無い場合はFALSE
// stripos は大文字小文字を区別しない
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

// 探索文字列が最後に現れたオフセットを返す。無い場合はFALSE
// strripos は大文字小文字を区別しない
int strrpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

// 探索文字列が最初に現れた位置以降の文字列を返す。。無い場合はFALSE
// stristr は大文字小文字を区別しない
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

文字列のパース

URLのパース parse_url

$parsed = parse_url($url);
if( $parsed !== FALSE ) echo $parsed[host];
  • パースされた値
    パースできない文字列が入力された場合はFALSEを返す。
    キー要素
    scheme例: http
    hostホスト名 www.foo.com
    portポート番号 80
    userユーザ名 user
    passパスワード pass
    path仮想パス /path/bar.html
    queryクエスチョンマーク ? 以降
    fragmentハッシュマーク # 以降

json形式

//json形式のデータを解析しオブジェクトとして返す
$obj = json_decode($string)
//json形式のデータを解析し配列として返す
$arr = json_decode($string, TRUE)

csv形式

//csv形式のデータを配列として返す
// $delimiter : データの区切り文字。デフォルトでカンマ,
// $enclosure : フィールド(文字列など)を囲む文字。デフォルトでダブルクオート"
// $escape    : エスケープ文字。デフォルトでバックスラッシュ\
str_getcsv($string,$delimiter,$enclosure,$escape)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規新規下位 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-03-22 (火) 23:44:43 (2377d)