0Pricing
PHP Academy · 课时

子字符串与填充函数

使用 substr、str_pad 和 wordwrap 提取并格式化字符串片段。

子字符串与填充函数 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 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);   // World

mb_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-00042

wordwrap()

按指定宽度换行字符串,并在单词边界处断行:

<?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 dog

chunk_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%  #1

number_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() — 构建格式化字符串

常见问题解答

「子字符串与填充函数」课时是免费的吗?

是的 — 「子字符串与填充函数」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。

「子字符串与填充函数」这节课中我会学到什么?

使用 substr、str_pad 和 wordwrap 提取并格式化字符串片段。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 PHP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「子字符串与填充函数」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 PHP Academy 课中编写并运行代码吗?

能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 字符串基础与拼接
  2. 字符串搜索与替换
  3. 子字符串与填充函数
  4. 字符串的拆分与连接
← 返回 PHP Academy