KHN-プログラミングブログ-

PHP 関数:文字列操作 ②

① mb_strlen()

文字列の長さを調べる

$test = mb_strlen('abcあいう');

echo $test;

結果

② strpos()

検索対象文字列に対して、検索文字列があるかどうかを判定して、あればその場所を数値で返す。

strpos ( 検索対象文字列 , 検索文字列 [, 文字列の中での検索開始位置] )

$string = 'ABCDE';
$find   = 'C';
$pos = strpos($string, $find);
echo $pos;

結果

③ strpos()

文字列内から指定した文字列が最初に現れる場所を取得する

$haystack = "abcdefgd";
var_dump(strpos($haystack, "d"));
var_dump(strpos($haystack, "x"));

結果
int(3) bool(false)

④ mb_strpos()

文字列の中から指定された文字列が何文字目に存在するかを返す

mb_strpos ( $検索対象文字列 , $検索文字列 [, $オフセット = 0 [, $文字コード ]] )

$str="私は現在PHPを学習しています。";
$serch='学習';

$pos= mb_strpos($str,$serch);
echo($pos);

結果8
注意0スタート

$a = "あいうあいう";
var_dump(mb_strpos($a, "あ", 0)); //int(0)
var_dump(mb_strpos($a, "あ", 1)); //int(3)
var_dump(mb_strpos($a, "あ", 2)); //int(3)
var_dump(mb_strpos($a, "あ", 3)); //int(3)
var_dump(mb_strpos($a, "あ", 4)); //bool(false)
var_dump(mb_strpos($a, "あ", 5)); //bool(false)

⑤ mb_convert_encoding()

文字列を指定された文字コードに変換して返す。

string mb_convert_encoding( 対象文字列, 変換後の文字コード , 元の文字コード )

$data= file_get_contents('./test.txt');
$str = mb_convert_encoding($data,"utf-8","sjis");

➅ mb_convert_kana()

ひらがな・カタカナ、全角・半角を相互に変換する。
オプションでいろいろ変わる


/* 文字列を定義 */
$str_kana = "アイウエオ";

/* 半角 ⇔ 全角 変換 */
//var_dump( mb_convert_kana($str_kana) );
var_dump( mb_convert_kana($str_kana, 'k') );
//var_dump( mb_convert_kana($str_kana, 'KVRN') );

結果
半角カタカナ

⑦trim()

文字列の前後からスペースやタブなどの空白文字や指定された文字を取り除く。


$str = '   abc  '; //先頭と末尾にスペースが入っている
echo trim($str); //先頭と末尾の半角スペースが削除される

$str = ',abc,'; //先頭と末尾に「,」(カンマ)が入っている
echo trim($str, ','); //先頭と末尾の「,」(カンマ)が削除され「abc」と表示される

⑧rtrim() 右から

$str = '  abc  '; //半角スペースが入っている
echo rtrim($str); //半角スペースが削除される

$str = 'abc,'; //末尾に「,」(カンマ)が入っている
echo rtrim($str, ','); //末尾の「,」(カンマ)が削除され「abc」と表示される

⑨ltrim() 左から

$str = ' abc '; //末尾に半角スペースが入っている
echo ltrim($str); //末尾の半角スペースが削除される

⑩ mt_rand();

ランダムの値を返す

echo mt_rand(1, 6);

⑪ is_string()

与えられた値が文字列であるかを返す。

$var1 = "PHP Programming";
$var2 = true;
$var3 = 19387;
$var4 = 5.814;
$var5 = NULL;

var_dump( is_string($var1) );      //true
var_dump( is_string($var2) );      //以下false
var_dump( is_string($var3) );
var_dump( is_string($var4) );
var_dump( is_string($var5) );

⑫is_int()

与えられた値が整数かどうか調べる


$str = '255'; // 文字列(string)型
$int = 255; // 整数(int)型
$flt = 255.99; // 浮動小数点(float)型

// 文字列(string)型の判定
if (is_int($flt)) {
  echo '文字列string => OK!';
} else {
  echo '文字列string => ダメ!';
}

⑬ is_float()

与えられた値が少数か調べる

  $isFloat = 3.14;
  echo is_float($isFloat) ? "浮動小数点型です。<br/>\n" : "浮動小数点型ではありません。<br/>\n";

⑭is_float()

与えられた値が数字として扱えるかを返す。文字列でも良い。

  $int = +1024;
  echo is_numeric($int) ? "数値または文字列型の数字です。<br/>\n" : "数値ではありません。<br/>\n";
  //数値または文字列型の数字です。

⑮ round()

小数部分を四捨五入して返す


  $num = 3.14159266535;
  print round($num, 4) . "<br>";
  print round($num, 3) . "<br>";
  print round($num, 2) . "<br>";
  print round($num, 1) . "<br>";
  print round($num, 0) . "<br>";
  print round($num);

⑯ floor()

小数点以下切り捨て

  print floor(235.22) . "<br>"; // 切捨て

⑰ ceil() は小数点以下切り上げで丸める

 print ceil(235.22) . "<br>"; // 切り下げ