echo substr('Hello world!', 6, 5);
// 'Hello World!'という文字列の7文字目から5文字分を切り出して取得します
出力結果
substr(string $string, int $start, ?int $length = null): string
$originalString = 'Hello, world!';
$start = 7; // 開始位置
$length = 5; // 切り出す長さ

$extractedString = substr($originalString, $start, $length);

if ($extractedString !== false && $extractedString !== '') {
    echo '抽出された文字列: ' . $extractedString;
} else {
    echo '文字列の抽出に失敗しました';
}

// 出力: '抽出された文字列: world'
$originalString = 'Hello, world!';
$startNegative = -6; // 末尾から6文字目から開始
$length = 5; // 抽出する長さ

$extractedString = substr($originalString, $startNegative, $length);

echo '抽出された文字列: ' . $extractedString;
// 出力: '抽出された文字列: world'
// 最初の例
// "Hello world"という文字列の0番目のインデックスから開始し、-1番目のインデックスまでの部分文字列を返します。
// -1番目のインデックスは文字列の末尾を示すため、「Hello worl」を出力します。
echo substr('Hello world', 0, -1); // 0番目のインデックスから開始し、-1番目のインデックスまで出力
// => "Hello worl"

// 二番目の例
// "Hello world"という文字列の-9番目のインデックスから開始し、-3番目のインデックスまでの部分文字列を返します。
// -9番目のインデックスは文字列の0番目のインデックスより小さいため、文字列の末尾からインデックスを計算します。
// -3番目のインデックスは文字列の6番目のインデックスを示すため、「llo wo」を出力します。
echo substr('Hello world', -9, -3); // -9番目のインデックスから開始し、-3番目のインデックスまで出力
// => "llo wo"

// 三番目の例
// "Hello world"という文字列の0番目のインデックスから開始し、-4番目のインデックスまでの部分文字列を返します。
// -4番目のインデックスは文字列の3番目のインデックスを示すため、「Hello w」を出力します。
echo substr('Hello world', 0, -4); // 0番目のインデックスから開始し、-4番目のインデックスまで出力
// => "Hello w"
echo substr('はじめまして。ようこそ。', 7, 4);
出力結果 マルチバイト文字の途中で切ると、文字化けが発生する可能性があります。
echo mb_substr('はじめまして。ようこそ。', 7, 4);
出力結果