Я пытался избавиться от какой-либо начальной части из строки, используя функцию php ltrim. Он отлично работает, пока не получит символ ai после двоеточия:. если он найдет i после двоеточия, он просто игнорирует символ i. Я знаю, что это можно сделать с помощью substr или любым другим способом, но я хочу знать, почему это происходит с отделкой. Например.
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');