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