假设我想要返回所有的字符后一些针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方法.