我试图使用php-ltrim函数从字符串中剥离一些开头部分。它工作正常,直到它在冒号后得到一个i字符:。如果它在冒号后找到i,它只需忽略i字符。我知道它可以用substr或任何其他方式完成,但我想知道为什么用trim会发生这种情况。例如
ltrim('mailto:bob@example.com','mailto:');
以上函数将返回bob@example.com
但是如果我把I放在冒号后面。。例如
ltrim('mailto:info@example.com','mailto:');
这个会回来的nfo@example.com
有人能解释一下发生了什么吗?
ltrim的第二个参数是要从字符串左侧删除的字符列表。
如果你做了
<?php
ltrim('lllliiiiaaaaaatttttt', 'mailto:');
?>
您将得到一个空字符串作为返回值。
试试这个:
<?php
$email = 'mailto:bob@example.com';
$fixedEmail = substr($email, 0, 7) == 'mailto:' ? substr($email, 7) : $email;
?>
ltrim()的工作方式不同,它从左边修剪所有给定的字符,直到找到不匹配的字符。因此,当你在电子邮件地址的冒号后面放一个"i"时,第一个不匹配的字符是"n",所以它会修剪前面的所有字符。
如果你的意图是删除"mailto:",你可以简单地尝试:
str_replace('mailto:', '', 'mailto:info@example.com');