Intereting Posts
Как включить config.php эффективно? PHP Унаследованный родительский метод не может получить доступ к частной собственности ребенка Regex – захватить определенное слово в определенных тегах PHP-Java Bridge vs. RESTful WebService: Что касается производительности, которая лучше? PHP Скрыть идентификатор от показа в URL-адресе href mysql_real_escape_string: достаточно ли для безопасности базы данных? Переменная контроллера не отображается в Query Builder Laravel Как я могу повернуть видео с помощью FFmpeg? PHP $ _REQUEST как массив добавление идентификатора пользователя из базы данных в данные сеанса в Codeigniter? Проблема SecureCookiePermission – апплет не работает с последним обновлением Java 6 29 Запретить вход в браузер кнопки «Назад» после выхода в Laravel 5 Вход-Аутентификация в удаленную базу данных mysql Как заменить каждый другой экземпляр определенного символа в строке MySQL? Что такое объект application / gas-events-abn в редакторе WordPress?

Поведение PHP ltrim с символьным списком

Я пытался избавиться от какой-либо начальной части из строки, используя функцию 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');