juk
Новичок
преобразование строки в массив байтов
привет всем, возик вопрос по преобразованию сроки Wide Char'ов
в массив байтов - как-то не получается
на С/C++ это ваыглядит примерно так
void Str16ToBin( const Str16& In, Str8& Out )
{
//преобразование из WCHAR в char т.е. -
//отбрасываем по одному байту из каждого входного символа
Out.Copy( In );
//собсна само преобразование из ACSII в байты
for( int i = 0; i < Out.Length(); i++ )
Out = Out - '0';
}
а теперь нечто похожее на php
function ConvertToBinData( &$str )
{
echo "ConvertToBinData:<br>";
$len = strlen( $str );
echo "str = ". $str . " len=" . $len . "<br>";
for( $i = 0; $i < $len; $i++ )
{
//просто вывел каждый символ
printf( "str[ %d ] = %d<br>", $i, $str[ $i ] );
}
for( $i = 0; $i < $len; $i++ )
{
// а здесь уже преобразовал и вывел
$val = ord( $str[ $i ] ) - ord( '0' );
printf( "str[ %d ] = %d<br>", $i, $val );
}
}
тут в обоих циклах идет распечатка каждого символа,
и получается одно и то-же,
т.е.
$str[ $i ] == $val = ord( $str[ $i ] ) - ord( '0' );
как такое может быть???
и еще вопрос: могут-ли возникнуть какие-нить подводные
камни если строка передается в скрипт как
somescript.php?str=123423534534 ???
привет всем, возик вопрос по преобразованию сроки Wide Char'ов
в массив байтов - как-то не получается
на С/C++ это ваыглядит примерно так
void Str16ToBin( const Str16& In, Str8& Out )
{
//преобразование из WCHAR в char т.е. -
//отбрасываем по одному байту из каждого входного символа
Out.Copy( In );
//собсна само преобразование из ACSII в байты
for( int i = 0; i < Out.Length(); i++ )
Out = Out - '0';
}
а теперь нечто похожее на php
function ConvertToBinData( &$str )
{
echo "ConvertToBinData:<br>";
$len = strlen( $str );
echo "str = ". $str . " len=" . $len . "<br>";
for( $i = 0; $i < $len; $i++ )
{
//просто вывел каждый символ
printf( "str[ %d ] = %d<br>", $i, $str[ $i ] );
}
for( $i = 0; $i < $len; $i++ )
{
// а здесь уже преобразовал и вывел
$val = ord( $str[ $i ] ) - ord( '0' );
printf( "str[ %d ] = %d<br>", $i, $val );
}
}
тут в обоих циклах идет распечатка каждого символа,
и получается одно и то-же,
т.е.
$str[ $i ] == $val = ord( $str[ $i ] ) - ord( '0' );
как такое может быть???
и еще вопрос: могут-ли возникнуть какие-нить подводные
камни если строка передается в скрипт как
somescript.php?str=123423534534 ???