Реклама на сайте Advertise with us

PHP: Числа

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

show me the money

С нами с 18.02.03
Сообщения: 1598
Рейтинг: 263

Ссылка на сообщениеДобавлено: 29/11/06 в 10:18       Ответить с цитатойцитата 

Как число в PHP записать как строку из 4 байт?
Сохранять хочу числа в файлах не как строки "1234" которая занимает 4 байта, а как нормальную последовательность из 4 байтов, эквивалентную типу Integer, которая не ограничивается числом "9999" а 4-мя миллиардами.

Как это в PHP делается?

0
 

www.awm-tools.com

С нами с 28.01.04
Сообщения: 2941
Рейтинг: 3056


Передовик Master-X (01.01.2006) Передовик Master-X (16.01.2006) Передовик Master-X (01.03.2006)
Ссылка на сообщениеДобавлено: 29/11/06 в 10:23       Ответить с цитатойцитата 

Раскладывай на 4е разряда и пиши в файл через функцию chr()

Засабмить свой вебмастерский ресурс, получи PR!

0
 



С нами с 01.12.05
Сообщения: 339
Рейтинг: 248

Ссылка на сообщениеДобавлено: 29/11/06 в 10:29       Ответить с цитатойцитата 

f_write($pf,(int) $val);
по идее

0
 

show me the money

С нами с 18.02.03
Сообщения: 1598
Рейтинг: 263

Ссылка на сообщениеДобавлено: 29/11/06 в 10:33       Ответить с цитатойцитата 

Код:
f_write($pf,(int) $val);
по идее

Если бы всё так просто было.
PHP в файл только символы что ли писать может?

0
 

show me the money

С нами с 18.02.03
Сообщения: 1598
Рейтинг: 263

Ссылка на сообщениеДобавлено: 29/11/06 в 10:35       Ответить с цитатойцитата 

A d u l t писал:
Раскладывай на 4е разряда и пиши в файл через функцию chr()

Это мороки сколько с разбиением. А встроенных функций нет для этого?

0
 

www.awm-tools.com

С нами с 28.01.04
Сообщения: 2941
Рейтинг: 3056


Передовик Master-X (01.01.2006) Передовик Master-X (16.01.2006) Передовик Master-X (01.03.2006)
Ссылка на сообщениеДобавлено: 29/11/06 в 10:37       Ответить с цитатойцитата 

clever писал:
Это мороки сколько с разбиением. А встроенных функций нет для этого?

Напиши свою icon_smile.gif

Засабмить свой вебмастерский ресурс, получи PR!

0
 



С нами с 01.12.05
Сообщения: 339
Рейтинг: 248

Ссылка на сообщениеДобавлено: 29/11/06 в 10:37       Ответить с цитатойцитата 

по моему Php рабоатет только со строками
но заставить читать/писать бинарные файлы можно с помощью модификаторов (int) (float) и т.д.
щас гуру придут и скажут )))

0
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 29/11/06 в 10:59       Ответить с цитатойцитата 

а функция decbin() не сможет спасти предводителя дворянства?
http://www.php.net/manual/en/function.decbin.php

Последний раз редактировалось: ibiz (29/11/06 в 11:00), всего редактировалось 1 раз

0
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 29/11/06 в 11:00       Ответить с цитатойцитата 

...

0
 

show me the money

С нами с 18.02.03
Сообщения: 1598
Рейтинг: 263

Ссылка на сообщениеДобавлено: 29/11/06 в 11:11       Ответить с цитатойцитата 

ibiz писал:
а функция decbin() не сможет спасти предводителя дворянства?
http://www.php.net/manual/en/function.decbin.php

Не поможет, мне нужно строку получить равноценную числу, а не двочичный код.

0
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 29/11/06 в 11:39       Ответить с цитатойцитата 

а вот нельзя такое средствами пхп. и про модификаторы - это бред. чтобы это понять - возьмите объявление функции fwrite которая производит запись в файл:
Код:
int fwrite ( resource handle, string string [, int length])

т.е. какие бы конструкции вы не передавали во втором параметре (типа (int) $val) все равно они будут преобразованы в string. поэтому для того чтобы выполнить такую задачу нужно минимум написать функцию кодирования/декодирования. и в любом случае результат функции кодирования должен быть строкой. Исходное число нужно будет разбить на составляющие байты (руками), а потом представить что эти числа - asc коды, и выполнить обратное преобразование типа chr($byte[0]).chr($byte[1]).chr(....).

4
 

show me the money

С нами с 18.02.03
Сообщения: 1598
Рейтинг: 263

Ссылка на сообщениеДобавлено: 29/11/06 в 12:44       Ответить с цитатойцитата 

webboxxx писал:
и в любом случае результат функции кодирования должен быть строкой. Исходное число нужно будет разбить на составляющие байты (руками), а потом представить что эти числа - asc коды, и выполнить обратное преобразование типа chr($byte[0]).chr($byte[1]).chr(....).

Нда, намутили товарищи разработчики.

0
 



С нами с 19.03.04
Сообщения: 301
Рейтинг: 350

Ссылка на сообщениеДобавлено: 30/11/06 в 13:09       Ответить с цитатойцитата 

Код:

if(!function_exists('file_put_contents')) {
    function file_put_contents($filename, $data, $file_append = false) {
        $fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
        if(!$fp) {
             trigger_error('file_put_contents cannot write in file.', E_USER_ERROR);
                        return false;
        }
        fputs($fp, $data);
        fclose($fp);
        return true;       
    }
}

$data = 1234567890;

echo 'Number to write: '.$data.'<br>';


file_put_contents('file_1.txt',$data);

echo 'file_1.txt: '.filesize('file_1.txt').' bytes<br>';


file_put_contents('file_2.txt',pack('L',$data));

echo 'file_2.txt: '.filesize('file_2.txt').' bytes<br>';

$fc = unpack('L',file_get_contents('file_2.txt'));
echo 'unpacked: '.$fc[1];


?>

Цитата:
Number to write: 1234567890
file_1.txt: 10 bytes
file_2.txt: 4 bytes
unpacked: 1234567890

На детсадовские утренники я одевался белочкой. Дохлой.

4
 

show me the money

С нами с 18.02.03
Сообщения: 1598
Рейтинг: 263

Ссылка на сообщениеДобавлено: 30/11/06 в 15:45       Ответить с цитатойцитата 

Farik'у респект!
Остальным бегом штудировать мануал.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »