【PHP】文字列の編集方法まとめ!出力や表示、検索、比較などの基本ソースコード

この記事は約13分で読めます。
ポートフォリオ制作実績

PHPの文字列の操作や処理方法をソースコードにまとめました。

paiza.ioもしくはeclipseに以下のソースコードを書いて勉強してみましょう。

IT企業を志望している就活生にもおすすめです。

 

目次

スポンサーリンク

【PHP】文字列の出力や読み込み

【PHP】文字列を出力して画面に表示するためのソースコード

文字列を出力して画面に表示するためには、echo文もしくはprint文を使ってプログラミングします。

echo文とprint文の違いや異なる点としては、print文は1つの引数を出力して画面に表示してくれるのに対し、echo文は「,」で区切って複数の引数を指定して画面に表示することが可能です。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    echo "文","字","列¥n";//文字列
    print "文字列¥n";//文字列
?>

【PHP】文字列を整形してきれいに出力して画面に表示するためのソースコード

printf関数:指定したフォーマットに従って引数の値を整形して出力して表示してくれます。

sprintf関数:フォーマットに従って整形した文字列を返してくれます。

vprintf関数:引数を配列で指定してくれます(printfに同じ)。

vsprintf関数:引数を配列で指定してくれます(sprintfに同じ)。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = array(256.78910);
    foreach($s as $value){
        printf("%d¥n", $value);//256
        printf("%lf¥n", $value);//256.789100
    }
?>

【PHP】文字列を読み込んで入力を処理するためのソースコード

配列 = sscanf(文字列,フォーマット,[変数,変数 …])

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "2020-02-20 20:20:20";
    $a = sscanf($s, "%d-%d-%d %d:%d:%d");
    vprintf("%d年%d月%d日 %d時%d分%d秒", $a);//2020年2月20日 20時20分20秒
?>
スポンサーリンク

【PHP】文字列と文字コードの変換

【PHP】文字を文字コードに変換するためのソースコード

文字を文字コードに変換するためには、ord関数を使ってプログラミングします。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    printf("0x%x", ord("a"));//0x61
?>

【PHP】文字コードを文字に変換するためのソースコード

文字コードを文字に変換するためには、chr関数を使ってプログラミングします。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    echo chr(0x61);//a
?>

 

スポンサーリンク

【PHP】文字列の記号と空白文字

【PHP】エスケープされた文字を戻すためのソースコード

エスケープされた文字を戻すためには、stripcslashes関数を使ってプログラミングします。

<?php
    $s = "123456789abcdefgABCDEFG!¥#$%&'()=~¥<>.+*?[]^";
    header("Content-Type: text/plain; charset=EUC-JP");
    echo stripcslashes($s);
?>

【PHP】空白文字を削除する・取り除くためのソースコード

空白文字を削除する・取り除くための関数はいろいろあります。

trim関数:文字列の先頭・前と末尾・後ろの空白文字を削除
ltrim関数:文字列の先頭・前の空白文字を削除
rtrim関数:文字列の末尾・後ろの空白文字を削除
chop関数:文字列の末尾・後ろの空白文字を削除

<?php
    $s = "     updowntech";
    header("Content-Type: text/plain; charset=EUC-JP");
    echo str_replace(" ", "", trim($s));//updowntech
?>
<?php
    $s = "updowntech     ";
    header("Content-Type: text/plain; charset=EUC-JP");
    echo str_replace(" ", "", rtrim($s));//updowntech
?>

【PHP】大文字と小文字を変換するためのソースコード

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "Updown Tech";
    echo strtoupper($s) . "¥n";//大文字に変換//UPDOWN TECH
    echo strtolower($s) . "¥n";//小文字に変換//updown tech
    echo ucfirst($s) . "¥n";//先頭を大文字に変換//Updown Tech
    echo ucwords($s) . "¥n";//単語の先頭(前)を大文字に変換//Updown Tech
?>

【PHP】文字列をランダムに並び替えてシャッフルするためのソースコード

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "Updown Tech";
    echo str_shuffle($s) . "¥n";//例:ewnTdcp hUo
?>
スポンサーリンク

【PHP】文字列の文字の検索

【PHP】文字列の長さを検索するためのソースコード

文字列の長さを検索するためには、strlen関数を使ってプログラミングします。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "UpdownTech";
    echo "{$s}は" . strlen($s) . "文字です。";
    //UpdownTechは10文字です。
?>

【PHP】特定の文字が含まれている部分の長さを検索して調べるためのソースコード

strspn関数を使ってプログラミングします。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "0120-1234";
    $n = strspn($s, "0123456789");
    echo "{$s}の中で数字だけなのは左から{$n}文字";
    //0120-1234の中で数字だけなのは左から4文字
 ?>

【PHP】特定の文字が含まれていない部分の長さを検索して調べるためのソースコード

strcspn関数を使ってプログラミングします。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "0120-1234";
    $n = strcspn($s, "-");
    echo "{$s}の中で-ではないのは左から{$n}文字";
    //0120-1234の中で-ではないのは左から4文字
?>

【PHP】特定の文字を検索して何文字目か表示するためのソースコード

プログラミング言語上では、何文字目か数える際に0から始まることになっているので注意しましょう。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "updowntech";
    $m = strpos($s, "w");
    $n = stripos($s, "c");
    echo "{$m}¥n{$n}¥n";
    //4、8
?>

【PHP】文字列の途中を部分的に取得するためのソースコード

文字列の途中を部分的に取得するためには、substr関数を使ってプログラミングします。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "UpdownTech";
    echo substr($s, 6, 9);//substr(文字列,開始位置,[長さ])
    //Tech
?>

【PHP】以降の文字を抜き出すためのソースコード

strtstr関数(文字列,検索する文字)とstrchr関数(文字列,検索する文字)は、検索した文字が最初に現れる場所を探し、その文字以降の文字列を返します。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "2020/2_20";
    $t = strchr($s, "_");//「_20」が取り出されてしまう。
    $d = ltrim($t, "_");//「_」を取り除く・削除したので「20」のみ取り出される。
    echo "今日の日付は{$d}日";//今日の日付は20日
 ?>

 

スポンサーリンク

【PHP】文字列の編集をするためのソースコード

【PHP】文字列を分割するためのソースコード

文字列を分割するためには、chunk_split関数を使ってプログラミングします。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "chunk_split関数は単語に関係なく文字数で文字列を分割します。";
    echo "[chunk_split]¥n";
    echo chunk_split($s, 10, "/");//文字列、字数、分割するための文字
?>

【PHP】文字列を伸ばす・延長する・埋めるためのソースコード

文字列を伸ばす・延長する・埋めるためには、str_pad関数を使ってプログラミングします。下記のソースコードの場合は、15文字目まで伸ばして「!」で埋めて表示しています。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "UpdownTech";
    echo str_pad($s, 15, "!");
    //UpdownTech!!!!!
?>

【PHP】文字を繰り返して反復表示するためのソースコード

文字を繰り返して反復表示するためには、関数を使ってプログラミングします。下記のソースコードの場合は、5文字まで繰り返して「*」を表示しています。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "*";
    echo str_repeat($s, 5);//*を5回繰り返して表示する
    //*****
?>

【PHP】文字列を逆転・反転・回文させるためのソースコード

文字列を逆転・反転するためには、strrev関数を使ってプログラミングします。日本語の2バイトの文字は文字化けするので注意しましょう。

例えば「pop」という文字列を入力した場合は、回文になるので、上から読んでも下から読んでも同じ実行結果になります。

ほかにも例えば、日本語の「しんぶんし」を入力してみると、文字化けしてしまいます。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "UpdownTech";
    echo strrev($s);//hceTnwodpU
    //*****
?>
<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "pop";
    echo strrev($s);//pop
    //*****
?>
<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "しんぶんし";
    echo strrev($s);//��㓂㶁㓂㗁�
    //*****
?>

【PHP】文字列を暗号化してパスワードを生成・作成するためのソースコード

・str_rot13関数:文字列にROT13エンコードを実施します。簡単に複合できるため、機密情報の保持には不向きです。

・crypt関数:指定した文字列を13文字の暗号として返します。元の文字列に戻す操作はできません。

・md5関数:指定した文字列のMD5ハッシュ値を計算した後、32文字の16進数の文字列を返します。これも元の文字列に戻す操作はできません。

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "abcdefg0123456";
    echo "flat: " . $s . "¥n";//例:abcdefg0123456
    echo "rot13: " . str_rot13($s) . "¥n";//例:nopqrst0123456
    echo "crypt: " . crypt($s, "updowntech") . "¥n";//例:up67j630CuAp2
    echo "md5: " . md5($s) . "¥n";//例:e8e4d3a6e6fa4db12a466725a02f02ba
    echo "sha1: " . sha1($s) . "¥n";//例:332044850c950be7127606e94864fd32a678d574
?>

 

スポンサーリンク

【PHP】文字列の比較

【PHP】文字列を比較するためのソースコード

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s1 = "UpdownTech";
    $s2 = "uPDOWNtECH";
    echo "strcmp:" . strcmp($s1,$s2) . "¥n";//文字列を比較
    echo "strcoll:" . strcoll($s1,$s2) . "¥n"//;ロケールに基づいて比較
    echo "strcasecmp:" . strcasecmp($s1,$s2) . "¥n";//大文字と小文字を区別しない比較
    echo "strnatcmp:" . strnatcmp($s1,$s2) . "¥n";//自然順アルゴリズムで比較
    echo "strnatcasecmp:" . strcmp($s1,$s2) . "¥n";//自然順アルゴリズムで大文字と小文字を区別しない比較
    echo "strncmp:" . strncmp($s1,$s2,10) . "¥n";//比較する長さを指定して比較   
    echo "strncasecmp:" . strcmp($s1,$s2,10) . "¥n";//比較する長さを指定して大文字と小文字を区別しない比較
 ?>

【PHP】部分文字列を比較するためのソースコード

substr_compare関数はPHP5から新たに導入されました。[タイプ]にTRUEを入れた場合、大文字と小文字の区別がなくなります。

[返り値] ・部分文字列 < 比較語:-1
・部分文字列 == 比較語:0
・部分文字列 > 比較語:1

<?php
    header("Content-Type: text/plain; charset=EUC-JP");
    $s = "UpdownTech";
    echo substr_compare($s, "updown", 1, 2, FALSE);//substr_compare(文字列,比較語,開始位置,[長さ],[タイプ])
    //-5
?>
タイトルとURLをコピーしました