ltrim剥离超过需要

时间:2011-04-13 19:56:18

标签: php

有没有办法限制ltrim在PHP中删除的内容。

我得到了以下结果:

$str = "axxMyString";
$newStr = ltrim($str, "ax");
// result MyString and it should have been xMyString

5 个答案:

答案 0 :(得分:4)

如果您知道应该删除前两个字符,请使用:

$str = substr($str, 2);

ltrim($str, $chars)从字符串的 l eft侧删除$chars中的每个出现。

如果你只想在前两个字符等于ax时删除它们,你可以使用:

if (substr($str, 0, 2) == 'ax') $str = substr($str, 2);

答案 1 :(得分:1)

ltrim()手册:

  

剥离空白(或其他字符)   从字符串的开头。

因此...

$newStr = ltrim($str, "ax");

这将删除字符串'a'开头的每个字符'x'$str

使用substr()获取所需的部分字符串。

答案 2 :(得分:0)

第二个参数是每个要修剪的角色。因为您定义了ax,所以首先从字符串中删除了字母。

只是做:

$newStr = ltrim($str, "a");

你应该没事。

答案 3 :(得分:0)

您也可以使用正则表达式:

$string = preg_replace('#^ax#', '', $string);

答案 4 :(得分:0)

我认为混乱已经出现,因为ltrim会收到要删除的字符列表,而不是字符串。您的代码会删除所有a x而不是字符串ax。因此axxxaxxaMyString变为MyStringaxxaiaxxaMyString变为iaxxaMyString

如果您知道需要移除多少个字符,则可以使用substr()以获得更复杂的模式,您可以通过preg_replace()使用正则表达式。