Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

文字列操作

文字列操作について

文字列の操作

文字列を分割する

explode()関数は、引数の文字列を指定する文字列または文字で分割することができます。このとき、分割をした値は配列となります。

explode(string_separator,string)
「"|"」の文字で文字列を分割
<?php
    $str = explode( "|", "abc|defg" );
    var_dump($str);
?>
実行結果
array(2) { [0]=> string(3) "abc" [1]=> string(4) "defg" }

var_dumpにより、$strがどのようになっているかを確認してみます。

「array(2)」は「"|"」の文字により、「"abc"」と「"defg"」の二つに区切られたので要素の数で「2」となります。以上から、指定された文字により文字列が分割されたことがわかります。

文字列の一部分を取り出す

substr()関数は、文字列から指定したバイト分の文字列を取得します。

substr(string,start,[length])
先頭から4文字目以降を取得
<?php
    $str = substr("PHP Product",4);
    echo "$str";
?>
実行結果
Product

substr("PHP Product",4);の「4」は先頭から4文字目以降の文字を取得することを表しています。

先頭から4文字目以降4文字を取得する
<?php
    $str = substr( "PHP Product", 4, 4 );
    echo "$str";
?>
実行結果
Prod

substr("PHP Product",4,4);の「4,4」は先頭から4文字目以降4文字を取得することを意味しています。

ここではすなわち、PHP ProductのProdを取得しています。

末尾から4文字目以降4文字を取得する
<?php
    $str = substr( "PHP Product", -4, 4 );
    echo "$str";
?>
実行結果
duct

substr("PHP Product",-4,4);の「-4,4」は末尾(「-4」が末尾から4文字目を意味)から4文字目以降4文字を取得することを意味しています。

ここではすなわち、PHP Productのductを取得しています。

エスケープ文字を処理する

addslashes()関数は、エスケープ文字を処理します。「'(シングルクォーテーション)」、「"(ダブルクォーテーション)」、「\(バックスラッシュ)」、NULLの文字の前に\(バックスラッシュ)を挿入した文字列を返します。

addslashes(string)
エスケープ文字を処理する
<?php
    $str = "abc 'de";
    echo addslashes($str);
?>
実行結果
abc ¥'de

「'」の前に¥が挿入されていることがわかります。この¥によって「'」のPHPにとっての意味が処理され、通常の文字列としての「'」が適用されます。

文字列の書式を整える

printf()関数sprintf()関数は、引数の文字列の書式を変換することができます。ですが、printf()関数とsprintf()関数はそれぞれ役割が違い、printf()関数はブラウザに出力するのに対し、sprintf()関数はブラウザには出力せず、変数へ返します。

printf(format,[args]);
sprintf(format,[args]);
文字列の書式を整形する
<?php
    $y = 2004;
    $m = 8;
    $d = 1;

    printf( "%04d-%02d-%02d", $y, $m, $d );
?>
実行結果
2004-08-01

printf("%04d-%02d-%02d",$y,$m,$d);の%dは文字を出力することを表します。04は桁数を意味し、ここでは4桁の2004を出力します。次はsprintf()で実行してみます。

<?php
    $y = 2004;
    $m = 8;
    $d = 1;

    $sp = sprintf("%04d-%02d-%02d",$y,$m,$d);

    echo ("$sp");

?>
実行結果
2004-08-01

sprintf()は変数に値を返すので、「$sp = sprintf("%04d-%02d-%02d",$y,$m,$d);」のように一度、変数に代入してからでないとブラザウに出力することができません。

文字列の空白を削除する

trim()関数は、指定した文字列の先頭、および末尾から空白を取り除きます。

string trim( string str [, string charlist ] )
string trim( 文字列 [, 削除したい文字リスト ] )
文字列の空白を削除する
<?php

    $str1 = "(" . trim( " abc " ) . ")";
    $str2 = "(" . rtrim( " abc " ) . ")";
    $str3 = "(" . ltrim( " abc " ) . ")";
    $str4 = "(" . trim( "-abc-", "-" ) . ")";

    echo "$str1<br />n";
    echo "$str2<br />n";
    echo "$str3<br />n";
    echo "$str4<br />n";
?>
実行結果
(abc)
( abc)
(abc )
(abc)

$str1は、trim()関数を使用して先頭・末尾の空白を、$str2は、rtrim()関数を使用して末尾の空白を、$str3は、ltrim()関数を使用して先頭の空白をそれぞれ取り除いています。また、$str4はtrim()関数の第二引数を指定して、文字列から「-」を取り除いています。