从string的开头删除一个string

我有一个string,看起来像这样:

$str = "bla_string_bla_bla_bla"; 

我怎样才能删除第一个bla_ ; 但只有当它在string的开头find?

str_replace() ,它将删除所有的 bla_

简单的forms,没有正则expression式:

 $prefix = 'bla_'; $str = 'bla_string_bla_bla_bla'; if (substr($str, 0, strlen($prefix)) == $prefix) { $str = substr($str, strlen($prefix)); } 

所需时间: 0.0369毫秒 (0.000,036,954秒)

与:

 $prefix = 'bla_'; $str = 'bla_string_bla_bla_bla'; $str = preg_replace('/^' . preg_quote($prefix, '/') . '/', '', $str); 

如下:第一次运行(编译)为0.1749毫秒 (0.000174,999秒),之后为0.0510毫秒 (0.000,051,021秒)。

显然,在我的服务器上进行了configuration。

您可以使用正则expression式和插入符号( ^ )将匹配定位到string的开头:

 $str = preg_replace('/^bla_/', '', $str); 
 function remove_prefix($text, $prefix) { if(0 === strpos($text, $prefix)) $text = substr($text, strlen($prefix)).''; return $text; } 

这里。

 $array = explode("_", $string); if($array[0] == "bla") array_shift($array); $string = implode("_", $array); 
 <?php $str = 'bla_string_bla_bla_bla'; echo preg_replace('/bla_/', '', $str, 1); ?> 

我认为substr_replace做你想做的,你可以限制你的replacestring的一部分: http : //nl3.php.net/manual/en/function.substr-replace.php (这将使您只能看string的开头。)

您可以使用str_replace( http://nl3.php.net/manual/en/function.str-replace.php )的count参数,这将允许您从左侧开始限制replace次数,但是将不会执行它在一开始。

str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

现在做你想要的。

 $str = "bla_string_bla_bla_bla"; str_replace("bla_","",$str,1); 

删除www。 从string开始,这是最简单的方法(ltrim)

 $a="www.google.com"; echo ltrim($a, "www.");