gpt4 book ai didi

PHP substr 在某个char之后,substr + strpos的优雅解决方案?

转载 作者:IT王子 更新时间:2023-10-29 00:18:04 28 4
gpt4 key购买 nike

假设我想返回一些 needle char 'x' 之后的所有字符,来自:

$source_str = "Tuex helo babe".

通常我会这样做:

if( ($x_pos = strpos($source_str, 'x')) !== FALSE )
$source_str = substr($source_str, $x_pos + 1);

你知道更好/更聪明(更优雅的方式)来做到这一点吗?

不使用正则表达式不会使它更优雅,也可能更慢。

很遗憾我们不能这样做:

$source_str = substr(source_str, strpos(source_str, 'x') + 1);

因为当 'x' 未找到时 strpos 返回 FALSE(而不是像 JS 中那样的 -1 ).FALSE 的计算结果为零,第一个字符将始终被截断。

谢谢,

最佳答案

您的第一种方法很好:检查 x 是否包含在 strpos 中,如果是,则使用 substr 获取它后面的任何内容。

但你也可以使用 strstr :

strstr($str, 'x')

但由于这会返回以 x 开头的子字符串,请使用 substr 获取 x 之后的部分:

if (($tmp = strstr($str, 'x')) !== false) {
$str = substr($tmp, 1);
}

但这要复杂得多。因此,请改用您的 strpos 方法。

关于PHP substr 在某个char之后,substr + strpos的优雅解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4036036/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com