home > PHP入門 > 文字列関数

PHP入門の「に」

文字列関数

文字列を操作する関数

大文字と小文字の変換

strtolower()関数
大文字を小文字にする
<?php
$str = "Lee Byung Hun";
$new_str = strtolower($str);
print $str;
print "<br />\n";
print $new_str;
?>
実行結果
Lee Byung Hun
lee byung hun
strtoupper()関数
小文字を大文字にする
<?php
$str = "lbh";
$new_str = strtoupper($str);
print "We love " . $new_str ;
?>
実行結果
We love LBH

▲このページのトップへ

空白の削除

文字列の前後から半角スペースや改行(\n)などの空白や改行を取り除く

trim()関数
先頭と末尾両方の空白を取り除く
参考: 先頭 rtrim()関数、chop()関数
末尾 itrim()関数
<?php
$str = " We love LBH.\n";
$clean = trim($str);

print $str;
print "<br />\n";
print $clean;
?>
実行結果
We love LBH. 
We love LBH.

※違いが表れない!

▲このページのトップへ

文字列の分割・連結と置換

デリミタが1種類のときは正規表現を使わずに文字列を分割できる

explode()関数
文字列を分割して配列に格納する
implode()関数、join()関数
文字列の配列を指定してデリミタで連結する
$str1 = "fine|clowdy|rainy";
$array1 = exlode("|2, $str1); ・・・@
$str2 = implode(",", $array1); ・・・A
翻訳
@文字列$str1を「|」で分割して文字列$array1に格納する A文字列$array1を「,」で連結して文字列$str2に格納する
正規表現を使わない文字列の置換例
str_replace()関数
文字列の置換を行う
str_replace("置換前の文字列", "置換後の文字列", 置換対象となる文字列 );
<?php
	$str1 = "I like yoga.";
	$str2 = str_replace("yoga", "spa", $str1);

	print $str1;
	print "<br />\n";
	print $str2;
?>
実行結果
I like yoga.
I like spa.
配列で一括置換
$str = "I like yoga nad hiphop.";
$sports = array("yoga", "hiphop");

$heauty = array("spa", "sauna");
$newstr = str_replace($sports, $beauty, $str);

※うまくいかない

▲このページのトップへ

HTML関連の文字列関数

strip_tags()関数
文字列中のHTMLタグや<?php?>を削除する
strip_tags(削除の対象となるコード, "削除したくないタグ");
<?php
	$str = "<U><B>PHP</B></U>";
	$new_str = strip_tags($str, "<U>");

	print $str;
	print "<br />\n";
	print $new_str;
?>
結果
HTML:<U><B>PHP</B></U>  → <U>PHP</U>
画面表示
PHP
PHP
nl2br()関数
/nなどの改行文字の前にHTML改行タグを挿入する
<?php
	$str = "PHP\nSQLite\n";
	$new_str = nl2br($str);

	print $str;
	print "<br />\n";
	print $new_str;
?>
実行結果
PHP SQLite 
PHP
SQLite
htmlspecialchars()関数
<>などをHTML中で使える記号に置き換える
<?php
$tag = "<b>\"PHP\"</b>";
$new_tag = htmlspecialchars($tag, ENT_NOQUOTES);

print $tag;
print "<br />\n";
print $new_tag;
?>
実行結果

HTML☆ここわからない!表示の仕方を考える

"PHP"
<b>"PHP"</b>

画面表示

"PHP"
<b>"PHP"</b>
htmlspecialchars_decode()関数
htmlspecialchars()関数で置換した記号を元に戻す
<?php
$tag = "<b>\"PHP\"</b>";
$old_tag = htmlspecialchars_decode($tag);

print $tag;
print "<br />\n";
print $old_tag;
?>
実行結果

HTML☆ここわからない!表示の仕方を考える

<b>"PHP"</b>
"PHP"

画面表示

<b>"PHP"</b>
"PHP"

▲このページのトップへ

その他の文字列関数

文字列を変換する

sprintf()関数
指定した書式の文字列を作成する
<?php
$val1 = 712.197;
$val2 = sprintf("%d", $val1);
$val3 = sprintf("%f", $val1);
$val4 = sprintf("%s", $val1);

print $val1."<br />\n";
print $val2."<br />\n";
print $val3."<br />\n";
print $val4."<br />\n";
?>
%d10進数の整数を作成する
%f浮動小数点数を作成する
%s文字列を作成する
実行結果
712.197
712
712.197000
712.197

文字列の長さを取得する

strlen()関数
1バイトを1として文字の長さを数える
mb_strlen()関数
全角、半角にかかわらず、1文字を1として文字の長さを数える
<?php
$str = "7月12日";
$length1 = strlen($str);
$length2 = mb_strlen($str);

print "「".$str."」は、半角".$length1."文字分です。";
print "
\n"; print "「".$str."」は、".$length2."文字の文字列です。"; ?>
実行結果
「7月12日」は、半角7文字分です。
「7月12日」は、5文字の文字列です

文字列を検索する

strpos()関数
指定した文字列を前方から探して、はじめに現れる位置を取得する
<?php
	@$place = strpos("Byung Hun", "u", 2);
	print $place;
	print "
\n"; A$place2 = strpos("Byung Hun", "u", 4); print $place2; ?>
翻訳
「u」を探す
@文字列"Byung Hum"の2番目「y」以降について「u」を探して、先頭から何番目かを数える
⇒2番目
A文字列"Byung Hum"の4番目「n」以降について「u」を探して、先頭から何番目かを数える
⇒7番目
実行結果
2
7
strrpos()関数
指定した文字を後方から探して、はじめに現れる位置を取得する
<?php
	$place = strrpos("Byung Hun", "g", 2);
	print $place;
?>
翻訳
「g」を探す
文字列"Byung Hum"の2番目「y」以降についてうしろから「g」を探して、先頭から何番目かを数える
⇒4番目
実行結果
4
substr()関数
指定した位置から文字列の一部分を取り出す
<?php
	$str = substr("Byung Hun", 0, 5);
	print $str;
?>
翻訳
文字列の0番目「B」から5文字文を取り出す。
実行結果
Byung
日本語の場合
<?php
	$str = substr("こんにちは", 0, 4);
	print $str;
?>
実行結果

2文字(4バイト)が取り出される。

こん
前へ 次へ

▲このページのトップへ