如何只剪切字符串中的FIRST字符

时间:2014-10-24 17:00:01

标签: php string

所以我有这种情况,我想删掉第一个' 1。'超出一个字符串,但没有任何跟随' 1。' s。我想知道这是否可行。

所以我将它转换为字符串,我想知道是否有办法只删除最初的' 1。'而不是任何追随者。

因此,我的脚本根据特定条件动态分配一个数字,例如1,1.1,1.2,2,3,3.1。它目前正在增加1.到一切的开始。所以1会= 1.1,2.1会= 1.2.1等等。

有没有办法强迫它只取出第一个而不是后续的?这是我的来源:

 $str = (string)$i; $str = $i;
 $prepend = $parentPrepend ? 
                 $parentPrepend . '.' . $i 
               : $str = ltrim($str, '\1');
 $i++;  

3 个答案:

答案 0 :(得分:1)

ltrim代码不起作用的原因是您传递的\1与角色1不同。 \1是指ASCII码为1的字符,与ASCII码实际为1的{​​{1}}不同。

像这样修改你的代码:

\49

那应该修剪字符串左边的所有 ltrim($str, '1');

但是,您应该知道1将删除字符串左侧的所有匹配字符,而不仅仅是第一个字符!

如果您只想要第一个,那么您应该使用ltrim代替测试,以确保它是substr

1

如果你想删除句点,那么只需修改代码即可包含(并查看前2个字符而不是第一个字符)

if(substr($str, 0, 1) == '1')
    $str = substr($str, 1);

答案 1 :(得分:0)

使用strpos检查1.是否在开头。如果是,则使用substr返回字符串减去1。

$string = '1.1';

if (strpos($string, '1.') === 0) {
  $string = substr($string, 2);
}

var_dump($string);

答案 2 :(得分:0)

您还可以使用带有约束的str_replace:

$new_string = str_replace ('1.' , '' , $your_string, 1);