|
|
|
|
|
для: Trianon
(27.08.2007 в 23:12)
| | RLC/RRC/RAL/RAR по вам плачут :-D Вы еще пишете на PHP? Тогда ассемблер идет к вам !!! :) | |
|
|
|
|
|
|
|
для: Trianon
(27.08.2007 в 21:15)
| |
<?
$abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
. 'abcdefghijklmnopqrstuvwxyz'
. '0123456789+/';
function base64dec($data)
{ global $abc;
$sextets = strlen($data);
for($res = '', $acm=0, $bits = 0, $i = 0; $i < $sextets; $i++)
{
if(($nibble = strpos($abc, $data[$i])) === false)
break;
if($nibble >=64)
continue;
$acm<<=6; $acm |= $nibble;
if(($bits += 6) >= 8)
$res .= chr($acm >> ($bits -= 8));
}
return $res;
}
|
Желающие могут нападать и на алгоритм и на стиль.
Но отбиваться буду яростно. То есть - молча.:) | |
|
|
|
|
|
|
|
для: sms-send
(27.08.2007 в 14:08)
| | Моими руками он бы выглядел так:
<?php
function base64dec($data)
{
global $alfabet;
$sp = hexdec(substr($data, 0, 1));
$data = substr($data, 1);
for ($i=0, $bin=''; $i<strlen($data); $i++)
{
$pos = strpos($alfabet, $data[$i]);
$bin .= str_pad(decbin($pos), 6, '0', STR_PAD_LEFT);
}
if ($sp != 0)
{
$bin = substr($bin, 0, -intval($sp));
}
for ($i=0, $res=''; $i<strlen($bin); $i+=8)
{
$res .= chr($t = bindec(substr($bin, $i, 8)));
}
return $res;
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(27.08.2007 в 21:15)
| | sms-send, насколько я в курсе ты еще на Delphi пишешь, это его дурное влияние =D
Лично я без фигурных скобок вообще не могу обойтись. | |
|
|
|
|
|
|
|
для: Unkind
(27.08.2007 в 18:24)
| | Понятно. На мелком экране - пропустил.
Тогда алгоритм явно не отработан. | |
|
|
|
|
|
|
|
для: Trianon
(27.08.2007 в 16:04)
| | > А оно нужно было - такой велосипед изобретать?
нужно было отработать сам алгоритм, для портирования в другой язык
|
| |
|
|
|
|
|
|
|
для: sms-send
(27.08.2007 в 14:08)
| | >И ещё вопрос насчёт расположения операторов конструкции if-eseif-else. Как лучше?
Лучше наверное так:
<?
switch ($n) {
case 1: // блок операторов 1
break;
case 2: // блок операторов 2
break;
case 3: // блок операторов 3
break;
default: // блок операторов по умолчанию
}
?>
|
| |
|
|
|
|
|
|
|
для: sms-send
(27.08.2007 в 14:08)
| | > Может кто то перепишет и покажет на примере как должен выглядеть этот кусок кода?
Да кто его знает, как он должен выглядеть :) Может выглядеть по-Вашему, если этот стиль будет понятен всем из команды (и соответственно, все его будут придерживаться).
По стандартам PEAR этот код выглядел бы так: (или почти так)
<?php
function base64dec($data)
{
global $alfabet;
$sp = hexdec(substr($data, 0, 1));
$data = substr($data, 1);
for ($i = 0, $bin = ''; $i < strlen($data); $i++) {
$pos = strpos($alfabet, $data[$i]);
$bin .= str_pad(decbin($pos), 6, '0', STR_PAD_LEFT);
}
if ($sp != 0) {
$bin = substr($bin, 0, -intval($sp));
}
for($i = 0, $res = ''; $i < strlen($bin); $i += 8) {
$res .= chr($t = bindec(substr($bin, $i, 8)));
}
return $res;
}
?>
|
>Настойчиво рекомендуется использовать фигурные скобки, даже в том случае, когда их использование не является необходимостью.
>брр... в чем разница?
Думаю, имеется ввиду
if (true) {
echo "it's true";
} else {
echo "it's false";
}
|
> И ещё вопрос насчёт расположения операторов конструкции if-eseif-else. Как лучше?
Мне больше первый нравится. (только Вы забываете пробелы расставлять "В управляющих структурах между ключевым словом и открывающей круглой скобкой должен находиться пробел, чтобы отличать их от вызова функций.")
Как договорится группа перед кодированием, так и будет лучше) | |
|
|
|
|
|
|
|
для: sms-send
(27.08.2007 в 03:50)
| | Извините, что не в тему...
А оно нужно было - такой велосипед изобретать?
base64_decode() никак не удовлетворяла?
В конце концов, если алфавит нестаднартный применяется, можно обложку написать
function base64dec($data)
{
global $alphabet;
return base64_decode( strtr($data, $alphabet, "ABC...XYZabc...xyz01..89+/" ).'==');
}
|
| |
|
|
|
|
|
|
|
для: cheops
(27.08.2007 в 11:46)
| | >> "Чужие" стили меня раздражают и отвлекают от сути кода.
>С этим нужно бороться, так как при работе в команде не только необходимо читать код с чужим стилем, но и самому уметь его менять по первому требованию. Неплохо даже потренироваться их менять.
Именно по этому и создал тему, раньше меня это особо не беспокоило. | |
|
|
|
|