Source of: /manual/en/function.sqlite-udf-decode-binary.php
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.sqlite.inc";
$setup = array (
'home' =>
array (
0 => 'index.php',
1 => 'PHP Manual',
),
'head' =>
array (
0 => 'UTF-8',
1 => 'en',
),
'this' =>
array (
0 => 'function.sqlite-udf-decode-binary.php',
1 => 'sqlite_udf_decode_binary',
),
'up' =>
array (
0 => 'ref.sqlite.php',
1 => 'SQLite Functions',
),
'prev' =>
array (
0 => 'function.sqlite-single-query.php',
1 => 'sqlite_single_query',
),
'next' =>
array (
0 => 'function.sqlite-udf-encode-binary.php',
1 => 'sqlite_udf_encode_binary',
),
);
$setup["toc"] = $TOC;
$setup["parents"] = $PARENTS;
manual_setup($setup);
manual_header();
?>
<div id="function.sqlite-udf-decode-binary" class="refentry">
<div class="refnamediv">
<h1 class="refname">sqlite_udf_decode_binary</h1>
<p class="verinfo">(PHP 5, PECL sqlite >= 1.0.0)</p><p class="refpurpose"><span class="refname">sqlite_udf_decode_binary</span> — <span class="dc-title">Decode binary data passed as parameters to an <acronym title="User Defined Functions">UDF</acronym></span></p>
</div>
<a name="function.sqlite-udf-decode-binary.description"></a><div class="refsect1 description">
<h3 class="title">Description</h3>
<div class="methodsynopsis dc-description">
<span class="type">string</span> <span class="methodname"><b>sqlite_udf_decode_binary</b></span>
( <span class="methodparam"><span class="type">string</span> <tt class="parameter">$data</tt></span>
)</div>
<p class="para rdfs-comment">
Decodes binary data passed as parameters to a <acronym title="User Defined Functions">UDF</acronym>.
</p>
<p class="para">
You must call this function on parameters passed to your UDF if you need
them to handle binary data, as the binary encoding employed by PHP will
obscure the content and of the parameter in its natural, non-coded form.
</p>
<p class="para">
PHP does not perform this encode/decode operation automatically as it would
severely impact performance if it did.
</p>
</div>
<a name="function.sqlite-udf-decode-binary.parameters"></a><div class="refsect1 parameters">
<h3 class="title">Parameters</h3>
<p class="para">
</p><dl>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">data</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
The encoded data that will be decoded, data that was applied by either
<a href="function.sqlite-udf-encode-binary.php" class="function">sqlite_udf_encode_binary()</a> or
<a href="function.sqlite-escape-string.php" class="function">sqlite_escape_string()</a>.
</p>
</dd>
</dl>
<p>
</p>
</div>
<a name="function.sqlite-udf-decode-binary.returnvalues"></a><div class="refsect1 returnvalues">
<h3 class="title">Return Values</h3>
<p class="para">
The decoded <a href="language.types.string.php" class="type string">string</a>.
</p>
</div>
<a name="function.sqlite-udf-decode-binary.examples"></a><div class="refsect1 examples">
<h3 class="title">Examples</h3>
<p class="para">
</p><div class="example">
<p><b>Example #1 binary-safe max_length aggregation function example</b></p>
<div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB"><?php<br />$data </span><span style="color: #007700">= array(<br /> </span><span style="color: #DD0000">'one'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'two'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'three'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'four'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'five'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'six'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'seven'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'eight'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'nine'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'ten'</span><span style="color: #007700">,<br /> );<br /></span><span style="color: #0000BB">$db </span><span style="color: #007700">= </span><span style="color: #0000BB">sqlite_open</span><span style="color: #007700">(</span><span style="color: #DD0000">':memory:'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">sqlite_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">, </span><span style="color: #DD0000">"CREATE TABLE strings(a)"</span><span style="color: #007700">);<br />foreach (</span><span style="color: #0000BB">$data </span><span style="color: #007700">as </span><span style="color: #0000BB">$str</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$str </span><span style="color: #007700">= </span><span style="color: #0000BB">sqlite_escape_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">sqlite_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">, </span><span style="color: #DD0000">"INSERT INTO strings VALUES ('</span><span style="color: #0000BB">$str</span><span style="color: #DD0000">')"</span><span style="color: #007700">);<br />}<br /><br />function </span><span style="color: #0000BB">max_len_step</span><span style="color: #007700">(&</span><span style="color: #0000BB">$context</span><span style="color: #007700">, </span><span style="color: #0000BB">$string</span><span style="color: #007700">) <br />{<br /> </span><span style="color: #0000BB">$string </span><span style="color: #007700">= </span><span style="color: #0000BB">sqlite_udf_decode_binary</span><span style="color: #007700">(</span><span style="color: #0000BB">$string</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$string</span><span style="color: #007700">) > </span><span style="color: #0000BB">$context</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$context </span><span style="color: #007700">= </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$string</span><span style="color: #007700">);<br /> }<br />}<br /><br />function </span><span style="color: #0000BB">max_len_finalize</span><span style="color: #007700">(&</span><span style="color: #0000BB">$context</span><span style="color: #007700">) <br />{<br /> return </span><span style="color: #0000BB">$context</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">sqlite_create_aggregate</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">, </span><span style="color: #DD0000">'max_len'</span><span style="color: #007700">, </span><span style="color: #DD0000">'max_len_step'</span><span style="color: #007700">, </span><span style="color: #DD0000">'max_len_finalize'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">sqlite_array_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">, </span><span style="color: #DD0000">'SELECT max_len(a) from strings'</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">?></span>
</span>
</code></div>
</div>
</div><p>
</p>
</div>
<a name="function.sqlite-udf-decode-binary.seealso"></a><div class="refsect1 seealso">
<h3 class="title">See Also</h3>
<p class="para">
</p><ul class="simplelist">
<li class="member"><a href="function.sqlite-udf-encode-binary.php" class="function" rel="rdfs-seeAlso">sqlite_udf_encode_binary()</a> - Encode binary data before returning it from an UDF</li>
<li class="member"><a href="function.sqlite-create-function.php" class="function" rel="rdfs-seeAlso">sqlite_create_function()</a> - Registers a "regular" User Defined Function for use in SQL statements</li>
<li class="member"><a href="function.sqlite-create-aggregate.php" class="function" rel="rdfs-seeAlso">sqlite_create_aggregate()</a> - Register an aggregating UDF for use in SQL statements</li>
</ul><p>
</p>
</div>
</div><?php manual_footer(); ?>