Имя: Пароль:
1C
 
Чтение строки из файла
,
0 ChunLee
 
25.10.16
14:20
Доброго дня. Решил заморочиться и сделать чтение из txt файла строки, хеширование на PHP и кодировка base64. Столкнулся вот с какой штукой. Результаты исполнения этих 2 разных кодов:
$fp = file_get_contents('C:\Keys\Docum\base64.txt');
echo base64_encode(sha1($fp, 'windows-1251', 'UTF-8'),true);

$fp = '7784397263746823874Васяпу Пупкин';
echo base64_encode(sha1($fp, 'windows-1251', 'UTF-8'),true);

различаются

Когда я писал вот такой код
$fp = '7784397263746823874Васяпу Пупкин';
echo $fp;

результат выходит: 7784397263746823874Васяпу Пупкин, а вот дальше результаты хеширования отличаются, ну и base64 соответственно. В чем проблема? После чтения из файла нужно что-то еще делать с полученной строкой?
1 eRik
 
25.10.16
14:27
что за гибрид
sha1($fp, 'windows-1251', 'UTF-8') ?

по мануалу должно быть
string sha1 ( string $str [, bool $raw_output = false ] )

ну и file_get_contents берет весь файл, а не только одну строку. Т.е. там может быть в конце перевод строки или еще что-нибудь.
2 ChunLee
 
25.10.16
14:51
Не то скопировал, текст выглядит так.
$fp = file_get_contents('C:\Keys\Docum\base64.txt');
echo base64_encode(sha1($fp,true);
Я проверил. Зашел в файл и скопировал из этого файла текст в код. Точно нет лишних символов. Так же я через echo вывел то что считывает php. Строка без лишних символов, различаются результаты далее
3 ChunLee
 
25.10.16
14:54
Может надо задать явно кодировку? или еще что?
4 eRik
 
25.10.16
15:14
Скрипт, в котором написано
$fp = '7784397263746823874Васяпу Пупкин';
в той же кодировке, что и считываемый файл?
Если сам файл в утф8 то возможно еще в нем есть БОМ заголовок.
5 ChunLee
 
26.10.16
05:09
файл в utf-8, а что за БОМ заголовок
6 mehfk
 
26.10.16
05:24
В википедии прочитай.
7 ChunLee
 
26.10.16
05:31
Уже прочитал, спасибо. Щас будем тестить, позже результат чиркану
8 ChunLee
 
26.10.16
06:34
Не в этом проблема. Что-то другое
9 eRik
 
26.10.16
11:24
(8) http://my-files.ru/0rrcz8
Все совпадает. Внимательнее формируйте текстовый файл.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.