PHP String

String の基礎です。
C言語ように変数に int, float, string, char の区別はありません。
PHP は String(文字列)関係の処理が特に強化されています。
その一部を紹介します。

String ⇒ 配列

文字列を切り分けて、配列に変換します。
explode.php のソースコードを utf-8(BOM 無し)でタイプして c:\DATA\PHP\ に格納して下さい。
<?php
    $str  = "1, 2, 3, 4, 5";
    $array = explode(",", $str);
    print count($array);
    print "\r\n";

    for($i=0; $i<count($array); $i++)
    {   print (int)$array[$i]+10 . "  ";
    }
?>

【実行画面】
コマンドプロンプトを起動して explode.php をコンパイルします。
String1.php の実効結果です。
Microsoft Windows [Version 10.0.18363.836]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\maeda>cd C:\DATA\PHP

C:\DATA\PHP>php explode.php
5
11  12  13  14  15

C:\DATA\PHP>

プログラムの説明

  1. $str にカンマで区切った数字(文字列)を格納します。
    $array = explode(",", $str); で $str を切り分けて、配列に格納します。
    配列⇒文字列に変換する関数は $str= implode(',', $ary) です。
  2. print count($array); で配列のサイズを印字して改行します。
    print 文の ( ) はあっても無くても構いません。
  3. そのまま印字しても良いのですが、各要素に10を加えて印字してみました。
    各要素を明白に int 型に指定するためにキャストしています。
    「.」は文字列の連結演算子で、二個の空白を開けて印字します。

String-1

文字列の定義と検索です。
String1.php のソースコードを utf-8(BOM 無し)でタイプして c:\DATA\PHP\ に格納して下さい。
<?php
$str = "phpAbaBabc";
print $str . "  length=" . strlen($str) . "\r\n";

$pos = stripos($str, 'AB');
if ($pos === false)  print("'AB' not found" . "\r\n");
else  print("AB:" . $pos . "\r\n");

$pos = strripos($str, 'AB');
if ($pos === false)  print("'AB' not found" . "\r\n");
else  print("AB:" . $pos . "\r\n");

$pos = strpos($str, 'AB');
if ($pos === false)  print("'AB' not found" . "\r\n");
else  print("AB:" . $pos . "\r\n");
?>

【実行画面】
コマンドプロンプトを起動して String1.php をコンパイルします。
String1.php の実効結果です。
Microsoft Windows [Version 10.0.18363.836]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\maeda>cd c:\data\php

c:\DATA\PHP>php string1.php
phpAbaBabc  length=10
AB:3
AB:7
'AB' not found

C:\DATA\PHP>

プログラムの説明

  1. $str に String(文字列)を格納します。
    $str と文字列の長さを印字します。
    print 文の ( ) はあっても無くても構いません。
    「.」は文字列の連結演算子です。
    「" "」で囲われた文字列の中では PHP の変数や \r\n が使えます。
    それに対し「' '」で囲われた文字列は、変換されずにそのままです。
    $str = "phpAbaBabc";
    print $str . "  length=" . strlen($str) . "\r\n";
    
  2. $str に格納されている 'AB' を検索して、その位置を $pos に取得します。
    stripos() は大文字と小文字を区別しないで検索します。(str と pos の間に i が付く)
    $pos には "Ab" の位置(3)が格納されます。
    ($pos === false) は見つからなかったときの判定です。
    (false の値は 0 と等しいので == とすると先頭(ゼロ番目)で見つけたとき真になる)
    $pos = stripos($str, 'AB');
    if ($pos === false)  print("'AB' not found" . "\r\n");
    else  print("AB:" . $pos . "\r\n");
    
  3. $str を検索して最後に見つけた 'AB' の位置を $pos に取得します。
    strripos() は大文字と小文字を区別しないで最後に見つけた位置を取得します。(str と pos の間に ri が付く)
    $pos には "ab" の位置(7)が格納されます。
    $pos = strripos($str, 'AB');
    if ($pos === false)  print("'AB' not found" . "\r\n");
    else  print("AB:" . $pos . "\r\n");
    
  4. $str を検索して 'AB' の位置を $pos に取得します。
    strpos() は大文字の 'AB' を最初に見つけた位置を取得します。(r も i も付かない)
    'Ab' や 'ab' は見つかりますが、'AB' は見つかりません。
    $pos には見つからなかったときの(0)が格納されます。
    $pos = strpos($str, 'AB');
    if ($pos === false)  print("'AB' not found" . "\r\n");
    else  print("AB:" . $pos . "\r\n");
    
  5. 関数名の r や i の規則は、今回説明した関数以外にも当てはまります。
    各自で試してみて下さい。

String-2

文字列の置換(置き換え)です。
String2.php のソースコードを utf-8(BOM 無し)でタイプして c:\DATA\PHP\ に格納して下さい。
<?php
$str = "phpAbaBabc";
$word = str_replace("ab", "XYZ", $str);
print($word . "\r\n");

$word = str_ireplace("ab", "XYZ", $str);
print($word . "\r\n");
?>

【実行画面】
コマンドプロンプトを起動して String2.php をコンパイルします。
String2.php の実効結果です。
c:\DATA\PHP>php string2.php
phpAbaBXYZc
phpXYZXYZXYZc

プログラムの説明

  1. $str の "ab" を "XYZ" に置換します。
    "ab" は一個しかみつかりません。
    $str = "phpAbaBabc";
    $word = str_replace("ab", "XYZ", $str);
    print($word . "\r\n");
    
  2. 大文字小文字を区別しないで "ab" を "XYZ" に置換します。
    三か所が置き換わっています。
    $word = str_ireplace("ab", "XYZ", $str);
    print($word . "\r\n");
    
  3. この関数の名前にも i の規則(大文字と小文字を区別しない)が当てはまります。

前田稔の超初心者のプログラム入門
PHP Program