Показать сообщение отдельно
Старый 06.11.2006, 21:11
GRiNGA вне форума Посмотреть профиль Отправить личное сообщение для GRiNGA Найти все сообщения от GRiNGA
  № 1  
Ответить с цитированием
GRiNGA

Регистрация: Oct 2006
Сообщений: 73
По умолчанию PHP не передает правильно переменную во flash

Здравствуйте, помогите разобраться
если не конвертировать принимаеый из flash текст в вин-кодировку,
PHP скрипт правильно его не сохраняет,
а если конвертировать, то не передает обратно во Flash переменную inText

в чем может быть дело?

Код:
function utf_to_win($s){
for ($c=0;$c<strlen($s);$c++){
   $i=ord($s[$c]);
   if ($i<=127) $out.=$s[$c];
       if ($byte2){
           $new_c2=($c1&3)*64+($i&63);
           $new_c1=($c1>>2)&5;
           $new_i=$new_c1*256+$new_c2;
       if ($new_i==1025){
           $out_i=168;
       } else {
           if ($new_i==1105){
               $out_i=184;
           } else {
               $out_i=$new_i-848;
           }
       }
       $out.=chr($out_i);
       $byte2=false;
       }
   if (($i>>5)==6) {
       $c1=$i;
       $byte2=true;
   }
}
return $out;
}



function win_to_utf($s)    {
   for($i=0, $m=strlen($s); $i<$m; $i++)    {
       $c=ord($s[$i]);
       if ($c<=127) {$t.=chr($c); continue; }
       if ($c>=192 && $c<=207)    {$t.=chr(208).chr($c-48); continue; }
       if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; }
       if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; }
       if ($c==184) { $t.=chr(209).chr(209); continue; };
   if ($c==168) { $t.=chr(208).chr(129);  continue; };
   }
   return $t;
}
        $inText="";
        if ($_POST['name_1']&&$_POST['name_2']) {
            /*
            foreach ($_POST as $key => $value){
                $inText.=">".$key."_".$value."<";
            }
            print "inText=".$inText;
            */
            //çàïèñü â ôàéë
            $str=$_POST['nomer'].",".$_POST['name_1'].",".$_POST['name_2'].",".$_POST['name_3'].",".$_POST['dok'].",".$_POST['dok_n'];
            //$str_w=iconv('UTF-8', 'CP1251', $str);
            $str_w=utf_to_win($str."\r\n");
            $data="data.csv";
            if(is_file($data) && is_writable($data))
                {
                $fd=fopen($data,"a") or die("<p class=error>Íå ìîãó îòêðûòü ôàéë $data</p>");
                flock($fd,2);
                fputs($fd,$str_w);
                flock($fd,3);
                fclose($fd);
                }
            if(is_file($data) && is_readable($data))
                {
                $fd=fopen($data,"r") or die("<p class=error>Íå ìîãó îòêðûòü ôàéë $data</p>");
                $total=file("$data");
                print win_to_utf("inText=".$total[0]);
                fclose($fd);
                }
        } else print "inText=949956";


Последний раз редактировалось iNils; 07.11.2006 в 04:15.