sqlite_udf_decode_binary

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_udf_decode_binaryKullanıcı tanımlı bir işleve değiştirge olarak aktarılacak ikil veriyi çözümler

Açıklama

sqlite_udf_decode_binary ( string $veri ) : string

Kullanıcı tanımlı bir işleve (UDF) değiştirge olarak aktarılacak ikil veriyi çözümler.

İkil verilerin güvenli hale getirilmesi için PHP devreye sokulmuşsa ikil içeriğin tekrar işe yarar hale gelmesi için bu veriyi kullanıcı tanımlı işlevinize aktarırken bu işlevle tekrar eski haline getirmeniz gerekir.

PHP başarımı etkilediğinden bu kodlama ve kod çözme işlemlerini özdevinimli olarak uygulamaz.

Değiştirgeler

veri

sqlite_udf_encode_binary() veya sqlite_escape_string() tarafından kodlanmış ikil veri.

Dönen Değerler

Kodu çözülmüş dizge.

Örnekler

Örnek 1 - İkil olarak güvenli azami_uzunluk işlevi örneği

<?php
$data 
= array(
   
'one',
   
'two',
   
'three',
   
'four',
   
'five',
   
'six',
   
'seven',
   
'eight',
   
'nine',
   
'ten',
   );
$db sqlite_open(':memory:');
sqlite_query($db"CREATE TABLE strings(a)");
foreach (
$data as $str) {
    
$str sqlite_escape_string($str);
    
sqlite_query($db"INSERT INTO strings VALUES ('$str')");
}

function 
azami_uzunluk_sek(&$baglam$dizge)
{
    
$dizge sqlite_udf_decode_binary($string);
    if (
strlen($dizge) > $baglam) {
        
$baglam strlen($dizge);
    }
}

function 
azami_uzunluk_son(&$baglam)
{
    return 
$baglam;
}

sqlite_create_aggregate($db'azami_uzunluk',
        
'azami_uzunluk_sek''azami_uzunluk_son');

var_dump(sqlite_array_query($db'SELECT max_len(a) from strings'));

?>

Ayrıca Bakınız

add a note add a note

User Contributed Notes 1 note

up
1
BenWa
6 years ago
I had to migrate an existing SQLITE2 db with UDF encoded fields. SQLITE3 does not support sqlite_udf_decode_binary. So I wrote a replacement for the migration.

    function sqlite_udf_decode_binary($in){
      if ( substr($in,0,1)==chr(1) ) {
        $n=strlen($in);
        $e=ord(substr($in,1,1));
        $i=2 ;
        while($i<$n){
            $x = ord(substr($in,$i,1)) ;
            if ($x==1) {
                $i++;
                $x = ord(substr($in,$i,1)) - 1 ;
            }
            $out .= chr($x+$e) ;
            $i++;
        }
         
      } else {
          $out = $in ;
      }
      return $out ;
    }
To Top