一个char字符串后面的一个char,一个substr strpos优雅的解决方案?

前端之家收集整理的这篇文章主要介绍了一个char字符串后面的一个char,一个substr strpos优雅的解决方案?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我想要返回所有的字符后一些针char’x’从:

$source_str =“Tuex helo宝贝”.

通常我会这样做:

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将评估为零,第一个char将永远被切断.

谢谢,

你的第一个方法很好:检查x是否包含在strpos中,如果是,则使用substr获取任何内容.

但您也可以使用strstr

strstr($str,'x')

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

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

但这更复杂.所以使用你的strpos方法.

猜你在找的PHP相关文章