У меня есть строка, которая выглядит так:
$str = "bla_string_bla_bla_bla";
Как удалить первый bla_
; но только если он найден в начале строки?
С str_replace()
он удаляет все bla_
.
У меня есть строка, которая выглядит так:
$str = "bla_string_bla_bla_bla";
Как удалить первый bla_
; но только если он найден в начале строки?
С str_replace()
он удаляет все bla_
.
Обычная форма, без регулярного выражения:
$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,000,174,999 секунд) 1-й прогон (компиляция) и 0,0510 мс (0.000 051 021 секунда) после.
Профилированный на моем сервере, очевидно.
Вы можете использовать регулярные выражения с символом каретки (^
), который привязывает соответствие к началу строки:
$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 делает то, что вы хотите, где вы можете ограничить замену части своей строки: http://nl3.php.net/manual/en/function.substr-replace.php (Это позволит вам смотреть только на начало строки.)
Вы можете использовать параметр count str_replace (http://nl3.php.net/manual/en/function.str-replace.php), это позволит вам ограничить количество замен, начиная с слева, но он не будет принуждать его к началу.
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
теперь делает то, что вы хотите.
$str = "bla_string_bla_bla_bla";
str_replace("bla_","",$str,1);
Удалите www. от начала строки это самый простой способ (ltrim)
$a="www.google.com";
echo ltrim($a, "www.");