Может быть, вы делаете что-то еще, что портит результаты? Ваш тест вернет 0
print_r(strlen(trim(' ')));
И это ожидаемое поведение trim .
Эта функция возвращает строку с
пробелы с самого начала
и конец ул. Без второго
параметр, trim () удалит эти
символы:
- "" (ASCII 32 (0x20)), обычный пробел.
- "\ t" (ASCII 9 (0x09)), табуляция.
- "\ n" (ASCII 10 (0x0A)), новая строка (перевод строки).
- "\ r" (ASCII 13 (0x0D)), возврат каретки.
- "\ 0" (ASCII 0 (0x00)), NUL-байт.
- "\ x0B" (ASCII 11 (0x0B)), вертикальная табуляция.
UPDATE:
Глядя на ваш прикрепленный код, я заметил, что у вас есть лишний символ между двумя пробелами.
Это вывод hexdump -C
$ hexdump -C space.php
00000000 3c 3f 0d 0a 70 72 69 6e 74 5f 72 28 73 74 72 6c |<?..print_r(strl|
00000010 65 6e 28 74 72 69 6d 28 27 20 c2 a0 20 27 29 29 |en(trim(' .. '))|
00000020 29 3b 0d 0a 3f 3e |);..?>|
00000026
И это вывод od , содержащий только этот символ в файле.
$ od space.php
0000000 120302
0000002
trim не удалит этот пробел, потому что ... ну, это не пробел. Это хорошая справка о том, как находить необычных персонажей.
О, и чтобы ответить на ваш обновленный вопрос, просто используйте пусто , как сказал Питер.