Php ltrim条带超出需要

Php ltrim条带超出需要,php,Php,有没有一种方法可以精确限制ltrim在PHP中删除的内容 我对以下结果感到满意: $str = "axxMyString"; $newStr = ltrim($str, "ax"); // result MyString and it should have been xMyString 如果您知道应删除前两个字符,请使用: $str = substr($str, 2); ltrim($str,$chars)从字符串左侧的$chars中删除所有出现的内容 如果只想在前两个字符等于ax时去掉前

有没有一种方法可以精确限制ltrim在PHP中删除的内容

我对以下结果感到满意:

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

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

$str = substr($str, 2);
ltrim($str,$chars)
从字符串左侧的
$chars
中删除所有出现的内容

如果只想在前两个字符等于ax时去掉前两个字符,可以使用:

if (substr($str, 0, 2) == 'ax') $str = substr($str, 2);
  • 手册第页
  • 手册第页

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

$str = substr($str, 2);
ltrim($str,$chars)
从字符串左侧的
$chars
中删除所有出现的内容

如果只想在前两个字符等于ax时去掉前两个字符,可以使用:

if (substr($str, 0, 2) == 'ax') $str = substr($str, 2);
  • 手册第页
  • 手册第页

第二个参数指定要修剪的每个字符。因为在从字符串中删除第一个字母时,您同时定义了
a
x

只要做:

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

你应该没事。

第二个参数为将被修剪的每个字符分类。因为在从字符串中删除第一个字母时,您同时定义了
a
x

只要做:

$newStr = ltrim($str, "a");
你应该没事。

手册:

带空白(或其他字符) 从字符串的开头开始

所以

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

用于获取所需字符串的一部分。

手动:

带空白(或其他字符) 从字符串的开头开始

所以

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


用于获取所需字符串的一部分。

您也可以使用regexp:

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

您也可以使用regexp:

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

我认为这种混乱是因为ltrim接收到要删除的字符列表,而不是字符串。您的代码删除所有出现的
a
x
而不是字符串
ax
。因此,
axxxaxamyString
变为
MyString
axxaiaxxaMyString
变为
iaxxaMyString


如果您知道需要删除多少个字符,可以使用
substr()
,否则对于更复杂的模式,可以通过
preg\u replace()

使用正则表达式,我认为这是一种混淆,因为ltrim收到的是要删除的字符列表,而不是字符串。您的代码删除所有出现的
a
x
而不是字符串
ax
。因此,
axxxaxamyString
变为
MyString
axxaiaxxaMyString
变为
iaxxaMyString


如果您知道需要删除多少字符,可以使用
substr()
,否则对于更复杂的模式,您可以通过
preg\u replace()

使用正则表达式。很酷,现在就可以了!谢谢尽管如此,我还是对ltrim行为感到不解……从“从字符串开头去掉空白(或其他字符)”
ltrim()
删除左侧第二个参数中出现的所有字符。它没有删除子字符串。酷,这将暂时起作用!谢谢尽管如此,我还是对ltrim行为感到不解……从“从字符串开头去掉空白(或其他字符)”
ltrim()
删除左侧第二个参数中出现的所有字符。它没有删除子字符串。ltrim删除给定字符串中字符的所有实例,而不是字符串本身的实例(如果有意义)ltrim删除给定字符串中字符的所有实例,而不是字符串本身的实例(如果有意义)