Forum und email

sqlite_udf_decode_binary

(PHP 5, PECL sqlite:1.0-1.0.3)

sqlite_udf_decode_binary — Dekodiert Binärdaten und reicht diese als Parameter weiter zu einer benutzerdefinierten Funktion (UDF)

Beschreibung

string sqlite_udf_decode_binary ( string $data )

sqlite_udf_decode_binary() dekodiert die Binärkodierung der Parameter, die entweder mit sqlite_udf_encode_binary() oder sqlite_escape_string() durchgeführt wurde.

Parameter, die an eine UDF übergeben wurden und Binärdaten enthalten könnten, sollte mit dieser Funktion aufgerufen werden. Ansonsten würden die binären Information durch die im PHP implementierte Kodierung in ihrer natürlichen und nicht kodierten Form verändert werden.

PHP führt diese (De-)Kodieraufrufe nicht automatisch durch, da dieses die Performance drastig beeinflussen würde.

Beispiele

Example#1 Beispiel für eine binärsichere max_length Summenfunktion

<?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 
max_len_step(&$context$string
{
    
$string sqlite_udf_decode_binary($string);
    if (
strlen($string) > $context) {
        
$context strlen($string);
    }
}

function 
max_len_finalize(&$context
{
    return 
$context;
}

sqlite_create_aggregate($db'max_len''max_len_step''max_len_finalize');

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

?>