【Step5】 文字列操作 

PHPには、文字列を操作作する関数があらかじめ用意されています。

echo()関数とprint()関数 

引数で与えられた文字列を出力します。

《構文》

echo (文字列)
print (文字列)

《サンプル》

<?php
  echo ("Hellow ! <br>\n");
  print ("My name is Chie");
?>

《実行結果》

Hellow !
My name is Chie

 

strlen()関数 

文字列の長さを返します。

《構文》

strlen (文字列)

《サンプル》

<?php
  echo ("文字列長さ ");
  echo (strlen("文字列長さ"));
?>

《実行結果》

文字列長さ 10

 

substr()関数 

指定されたバイト数分の文字列を取り出します。

《構文》

substr (文字列,取り出し位置,文字列数)

《サンプル》

<?php
  $str1 = substr("JeanlucMccoy",0,7);
  $str2 = substr("JeanlucMccoy",7,5);
  echo ("$str1<br>\n");
  echo ("$str2<br>\n");
?>

《実行結果》

Jeanluc
Mccoy

 

str_replace()関数 

文字列を置換します。

《構文》

str_replace (検索文字列, 置換後の文字列, 元の文字列)

《サンプル》

<?php
   echo str_replace("Jean","Mccoy","Hellow I am Mccoy ");
?>

《実行結果》

Hellow I am Mccoy

 

printff()関数 sprintff()関数 

フォーマットを指定して出力します。

《構文》

printff (フォーマットを示す変数, 変数, 変数)

《サンプル》

<?php
  $year = "2005";
  $manth ="10";
  $day ="15";
  $format = "%1\$s年 %2\$s月 %3\$s日 <br>\n";
  printf($format, $year, $manth, $day);

  $manth = "Oct";
  $format = "%2\$s %3\$s %1\$s \n";
  printf($format, $year, $manth, $day);
?>

 

《実行結果》

2005年 10月 15日
Oct 15 2005

 

空白を取り除く関数 

trim()関数は、文字列の最初および最後から空白文字を取り除き、 取り除かれた文字列を返します。
ltrim()関数は、左側の空白を削除します。
rtrim()関数は、右側の空白を削除します。

《サンプル》

<?php
$text1 = " My name is Chie ";
$text2 = trim($text1); //左右の空白を削除
$text3 = ltrim($text1);//左側の空白を削除
$text4 = rtrim($text1);//右側の空白を削除

echo "空白削除前:[$text1]<br>";
echo "空白削除後:[$text2]<br>";
echo "左側削除後:[$text3]<br>";
echo "右側削除後:[$text4]<br>";
?>

《実行結果》

空白削除前[ My name is Chie ]
空白削除後[My name is Chie]
左側削除後[My name is Chie ]
右側削除後[ My name is Chie]

全角(2バイト文字)の空白を扱う場合には、マルチバイト文字列関数 mb_convert_kana()関数を使って、一度半角に変換する必要があります。

《構文》

mb_convert_kana( string str, string option [, mixed encoding] )

パラメータ1つめは任意の文字列、2つ目は変換オプション、3つ目は文字コードです。全角スペースを半角スペースに変換したい場合は、2つ目のパラメータで as を指定します。

《サンプル》

<?PHP
$text1 = " 全角の空白をとりますっ! ";
$text2 = mb_convert_kana($text1,"as","SJIS");
echo "空白削除前 → [$text1]<br>";
echo "空白削除後 → [$text2]<br>";
?>

《実行結果》

空白削除前 → [ 全角の空白をとりますっ! ]
空白削除後 → [ 全角の空白をとりますっ! ]

《オプション》 (初期値は"KV")

"r" 「全角」英字を「半角」に変換
"R" 「半角」英字を「全角」に変換
"n" 「全角」数字を「半角」に変換
"N" 「半角」数字を「全角」に変換
"a" 「全角」英数字を「半角」に変換
"A" 「半角」英数字を「全角」に変換
  ("a" "A" オプションに含まれる文字は、U+0022, U+0027, U+005C,U+007Eを除く U+0021 - U+007E の範囲です)
"s" 「全角」スペースを「半角」に変換 (U+3000 -> U+0020)
"S" 「半角」スペースを「全角」に変換 (U+0020 -> U+3000)
"k" 「全角片仮名」を「半角片仮名」に変換
"K" 「半角片仮名」を「全角片仮名」に変換
"h" 「全角ひら仮名」を「半角片仮名」に変換
"H" 「半角片仮名」を「全角ひら仮名」に変換
"c" 「全角かた仮名」を「全角ひら仮名」に変換
"C" 「全角ひら仮名」を「全角かた仮名」に変換
"V" 濁点付きの文字を一文字に変換。"K","H"と共に使用します。