|
|
|
|
$NAME=(string)$NAME;
$CRC_RN=pack("N",crc32($NAME));
$k = $CRC_RN{0};
for ($i=1; $i<4; $i++)
{
$k = $k ^ $CRC_RN{$i}; // битовое xor
}
#$k=hexdec($k); // <- этот перевод дает 0, т.е. не помогает
#settype ($k, "integer"); // <- это тоже не помогает
$fp = fopen("alf.dat", "rb");
fseek($fp, 512*$k); // переходим на 512*k байт (постоянно=0 то толку от этого кода нет!)
$buf = fread($fp, 512); // читаем 512 байт
|
При анализе внутри цыкла for $k - имеет правильное (расчетное) значение.
А вот при умножении 512*$k = 0;
Пример: после for $k=0x6b; gettype ($k) выдает string.
Как всетаки перевести эту $k в int?
Спасибо! | |
|
|
|
|
|
|
|
для: cadko
(02.02.2006 в 23:39)
| | | |
|
|
|
|
|
|
|
для: DDK
(02.02.2006 в 23:41)
| | >
Не помогает - все равно $k=0 | |
|
|
|
|
|
|
|
для: cadko
(03.02.2006 в 12:00)
| | $k=intval($k); | |
|
|
|
|
|
|
|
для: XPraptor
(03.02.2006 в 13:16)
| | >$k=intval($k);
И это не помогло ;-( | |
|
|
|
|
|
|
|
для: cadko
(03.02.2006 в 19:57)
| | Приведения к целому типу ничего не даст, так как $k - это строка, всё что непохоже на число приводится к 0. Я могу ошибаться, так как не совсем понимаю логику, но возможно вам требуется
| |
|
|
|