blogですかい

仕事、プライベートで学んだことなどを発信し、その内容がたとえ少数でも誰かの役に立ったらなら、それはとっても嬉しいなって

最近使い方を知ったPHPの文字列関数

ltrim(string $str [, string $charlist])

$strの左端から連続する$charlistに含まれる文字を除去する

rtrim(string $str [, string $charlist])

$strの右端から連続する$charlistに含まれる文字を除去する

trim()は知っているけど、左右限定のものがあるとは知らなかった。 そういった処理を書こうとしたら、 preg_replace("/^[ \t\n\r\0\v/]+", '', $str) って書くと思う。

substr_count(string $haystack, string $needle)

$haystack$needleが何回出現するかを返す

php > echo substr_count('ccccccccc', 'cc');
4
php > echo substr_count('ccccccccc', 'ccc');
3

使い方はわかったけど、名前が悪い。なぜsubstr_というprefixなのかわからない。

substr_replace(mixed $string, mixed $replacement, mixed $start [, mixed $length])

$string$start位置から$lengthの長さの分の文字を$replacementに置き換える。$lengthを指定しない場合は、$replacementの長さ分の文字が置き換えられる。

php > $string = array('mutsuki', 'kuma');
php > $replacement = array('fumi', 'ta');
php > $start = array(0, 0);
php > $length = array(2, 2);
php > var_dump(substr_replace($string, $replacement, $start, $length));
array(2) {
  [0] =>
  string(7) "fumitsuki"
  [1] =>
  string(4) "tama"
}

strrev(string $str)

$strの文字列を逆順にして返す

php > echo strrev('yamamotoyama');
amayotomamay

何に使うんだこれ?

str_repeat(string $input, int $multiplier)

$input$multiplier回繰り返した文字列を返す

php > echo str_repeat('!すでのな', 3);
!すでのな!すでのな!すでのな

何に使うんだこれ?

strpad(string $input, int $pad_length [, string $pad_string = " "])

長さが$pad_lengthになるまで$string$pad_stringを繰り返し追加した文字列を返す

php > $ships = array(array('type' => 'HC', 'name' => 'Chokai'), array('type' => 'BC', 'name' => 'Kirishima'), array('type' => 'DD', 'name' => 'Mochizuki'));
php > foreach($ships as $ship) echo str_pad($ship['name'], 10) . $ship['type'] . "\n";
Chokai    HC
Kirishima BC
Mochizuki DD

get_meta_tags(string $filename)

指定したHTMLファイル(URL可)のmetaタグ情報を連装配列にして返す

php > var_dump(get_meta_tags('http://www.yahoo.co.jp'));
array(1) {
  'description' =>
  string(282) "日本最大級のポータルサイト。検索、オークション、ニュース、天気、スポーツ、メール、ショッピングなど多数のサービスを展開。あなたの生活をより豊かにする「課題解決エンジン」を目指していきます。"
}

strtok(string $str, string $token)

$str$tokenで分割し、分割してできた文字列を返す。2回目以降は引数に$tokenのみ指定する。

php > $str = '気合い,入れて,いきます';
php > $token = ',';
php > echo strtok($str, $token) . "!\n"; while ($tmpToken = strtok($token)) echo "{$tmpToken}!\n";
気合い!
入れて!
いきます!

初回と2度目以降で呼び出しが変わるって・・・誰が使うんだこの関数?