当前位置: 首页> 最新文章列表> 如何结合 strrpos 和 substr 函数截取从最后一个字符位置到字符串末尾的内容?步骤详解

如何结合 strrpos 和 substr 函数截取从最后一个字符位置到字符串末尾的内容?步骤详解

gitbox 2025-08-23

如何结合 strrpos 和 substr 函数截取从最后一个字符位置到字符串末尾的内容?步骤详解

在 PHP 中,字符串操作是常见且重要的任务之一。很多时候,我们需要截取一个字符串的某一部分。strrpossubstr 是两个非常实用的 PHP 函数,它们可以结合使用来实现从字符串的最后一个字符位置开始,截取直到字符串末尾的内容。

1. strrpos 函数简介

strrpos 函数用于查找某个字符或子字符串在字符串中最后一次出现的位置。该函数返回该字符或子字符串的偏移量(即从字符串开始位置到找到的字符位置的距离),如果未找到则返回 false

<span><span><span class="hljs-title function_ invoke__">strrpos</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
  • $haystack: 要搜索的字符串。

  • $needle: 要查找的字符或子字符串。

  • $offset: 可选,偏移量,指定从哪里开始查找,默认为 0。

2. substr 函数简介

substr 函数用于从字符串中提取子字符串。它通过给定起始位置和长度来截取指定的部分。

<span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$start</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> = ?): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
  • $string: 输入的原始字符串。

  • $start: 截取的起始位置,可以是正数或负数,负数表示从字符串末尾开始计算。

  • $length: 可选,截取的长度,如果省略,则一直截取到字符串末尾。

3. 实现从最后一个字符位置到字符串末尾的截取

现在我们要结合 strrpossubstr 函数来截取字符串的内容,具体的需求是:从字符串中最后一个出现指定字符的位置开始,截取到字符串末尾。

4. 步骤详解

步骤 1: 使用 strrpos 查找最后一个字符的位置

假设我们有一个字符串 $str = "apple, banana, cherry, apple, orange",我们希望从最后一个 "apple" 出现的位置开始截取到末尾。首先使用 strrpos 查找最后一个 "apple" 在字符串中的位置。

<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"apple, banana, cherry, apple, orange"</span></span><span>;
</span><span><span class="hljs-variable">$last_pos</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strrpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">"apple"</span></span><span>); </span><span><span class="hljs-comment">// 查找最后一个 "apple" 的位置</span></span><span>
</span></span>

$last_pos 现在保存的是 "apple" 在字符串中的最后一次出现的位置,即 24

步骤 2: 使用 substr 截取从该位置到末尾的内容

接下来,我们使用 substr 函数从 $last_pos 开始截取,直到字符串末尾。

<span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$last_pos</span></span><span>); </span><span><span class="hljs-comment">// 从最后一个 "apple" 的位置开始截取</span></span><span>
</span></span>

此时,$result 的值为 "apple, orange",即从字符串最后一个 "apple" 到末尾的内容。

5. 完整代码示例

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 原始字符串</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"apple, banana, cherry, apple, orange"</span></span><span>;

</span><span><span class="hljs-comment">// 查找最后一个 "apple" 的位置</span></span><span>
</span><span><span class="hljs-variable">$last_pos</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strrpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">"apple"</span></span><span>);

</span><span><span class="hljs-comment">// 判断是否找到该字符</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$last_pos</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-comment">// 从最后一个 "apple" 开始截取到字符串末尾</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$last_pos</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"截取的内容是: "</span></span><span> . </span><span><span class="hljs-variable">$result</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"未找到指定字符"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

6. 运行结果

<span><span><span class="hljs-section">截取的内容是: apple, orange</span></span><span>
</span></span>

7. 总结

通过结合使用 strrpossubstr 函数,我们可以轻松地从字符串中获取从最后一次出现某个字符或子字符串的位置开始,到字符串末尾的内容。strrpos 帮助我们找到最后一个字符的位置,而 substr 则用于从该位置提取剩余的字符串内容。