部分文字列とパディング関数
substr、str_pad、wordwrapを使って文字列の一部を抽出・整形します
「部分文字列とパディング関数」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
文字列の一部を取り出す
PHPには、文字列を取り出したり、切り詰めたり、パディングしたりする強力な関数があります。これらは出力のフォーマットやテキストデータの処理に不可欠です。
substr()
開始位置と、必要に応じて長さを指定して文字列の一部を取り出します:
<?php
$str = 'Hello, World!';
echo substr($str, 7); // World!
echo substr($str, 7, 5); // World
echo substr($str, -6); // World!
echo substr($str, -6, 5); // Worldmb_substr()
マルチバイト文字列(UTF-8)から正しく取り出すには、mb_substr()を使用します:
<?php
$str = 'Привет Мир'; // Russian
// substr counts bytes, not characters:
echo strlen($str); // 19 bytes
// mb_substr counts characters:
echo mb_substr($str, 0, 6); // Приветstr_pad()
文字列を指定した長さまで埋めます:
<?php
// Default: right-pad with spaces
echo str_pad('5', 3, '0', STR_PAD_LEFT); // 005
echo str_pad('PHP', 10); // 'PHP '
echo str_pad('hi', 8, '-', STR_PAD_BOTH); // ---hi---
// Format invoice numbers:
echo 'INV-' . str_pad(42, 5, '0', STR_PAD_LEFT); // INV-00042wordwrap()
指定した幅で文字列を折り返します。単語の途中では分割しません:
<?php
$text = 'The quick brown fox jumped over the lazy dog';
echo wordwrap($text, 15, PHP_EOL, false);
// The quick brown
// fox jumped over
// the lazy dogchunk_split()
N文字ごとに区切り文字列を挿入します。base64のようなエンコード出力に便利です:
<?php
$data = '1234567890ABCDEF';
echo chunk_split($data, 4, '-');
// 1234-5678-90AB-CDEF-
// Typical use: base64 encoded email attachments
$encoded = base64_encode(file_get_contents('file.bin'));
$formatted = chunk_split($encoded, 76, "\n");nl2br()
改行をHTMLの<br>タグに変換して、ブラウザーに表示します:
<?php
$text = "Line one\nLine two\nLine three";
echo nl2br($text);
// Line one<br />\nLine two<br />\nLine threeフォーマット済み文字列のためのsprintf()
sprintf()はプレースホルダーを使って文字列をフォーマットします。構造化された出力の生成に便利です:
<?php
$name = 'Alice';
$score = 95.5;
$rank = 1;
$line = sprintf('%-10s %6.2f%% #%d', $name, $score, $rank);
echo $line;
// Alice 95.50% #1number_format()
桁区切りと小数点を付けて、数値を文字列としてフォーマットします:
<?php
$amount = 1234567.891;
echo number_format($amount); // 1,234,568
echo number_format($amount, 2); // 1,234,567.89
echo number_format($amount, 2, ',', '.'); // 1.234.567,89 (European)
echo number_format($amount, 2, '.', ''); // 1234567.89 (no separator)省略記号による文字列の切り詰め
表示用の長いテキストを、省略記号を付けて安全に切り詰めます:
<?php
function truncate(string $text, int $max, string $suffix = '...'): string {
if (mb_strlen($text) <= $max) return $text;
return mb_substr($text, 0, $max - mb_strlen($suffix)) . $suffix;
}
echo truncate('The quick brown fox', 15);
// The quick br...文字列の反転
strrev()で文字列を反転します(マルチバイト文字には対応せず、バイト単位で処理します):
<?php
echo strrev('Hello'); // olleH
echo strrev('12345'); // 54321
// Palindrome check
function isPalindrome(string $s): bool {
$s = strtolower(preg_replace('/[^a-zA-Z]/', '', $s));
return $s === strrev($s);
}
var_dump(isPalindrome('racecar')); // true
var_dump(isPalindrome('PHP')); // false文字列の繰り返しと埋め込み
フォーマットやパディングのために、繰り返しパターンの文字列を作成します:
<?php
// Build a progress bar
function progressBar(int $percent, int $width = 20): string {
$filled = (int) round($percent / 100 * $width);
$empty = $width - $filled;
return '[' . str_repeat('#', $filled) . str_repeat('-', $empty) . "] $percent%";
}
echo progressBar(65); // [#############-------] 65%確認問題
文字列にN文字ごとに区切り文字を挿入する関数はどれですか:
まとめ: 部分文字列とパディング
主な関数:
substr($str, start, length)— 位置を指定して取り出すmb_substr()— マルチバイト文字に対応した取り出しstr_pad()— 指定した長さまで埋めるwordwrap()— 単語の境界で折り返すchunk_split()— N文字ごとに区切り文字を挿入sprintf()— フォーマット済み文字列を作成
よくある質問
「部分文字列とパディング関数」レッスンは無料ですか?
はい。「部分文字列とパディング関数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「部分文字列とパディング関数」で何を学びますか?
substr、str_pad、wordwrapを使って文字列の一部を抽出・整形します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「部分文字列とパディング関数」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。