Почему не работает trim?
Главный спутник программиста - отладка. Если две строки неравны, значит нужно посмотреть, чем именно они отличаются. Т.е. вывести код каждого символа и сравнить. Сделать это можно, например, так:for ($i = 0; $i < strlen($str1); $i++) {
    echo ord($str1[$i]) . ' ';
}
Когда вы сравните строки, то увидете, что в $str2 у вас больше символов, значение которых можно найти в любой таблице ASCII. Тогда подтвердится ваше предположение о символах конца строк (которое, к слову, подробно описано в документации к функции, которую вы используете). 
Таким образом вы поймете, что по ошибке применили trim совсем не к той переменной.
$users[0] содержит следующую строку: "Vlad\n", смотрите функцию file, дословно из документации:Возвращает файл в виде массива. Каждый элемент массива соответствует строке файла, с символами новой строки включительно.
поэтому при сравнении вы имеете результат отличный от 0