Source of: /manual/fr/function.pack.php
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.misc.inc";
$setup = array (
'home' =>
array (
0 => 'index.php',
1 => 'PHP Manual',
),
'head' =>
array (
0 => 'UTF-8',
1 => 'fr',
),
'this' =>
array (
0 => 'function.pack.php',
1 => 'pack',
),
'up' =>
array (
0 => 'ref.misc.php',
1 => 'Fonctions diverses',
),
'prev' =>
array (
0 => 'function.ignore-user-abort.php',
1 => 'ignore_user_abort',
),
'next' =>
array (
0 => 'function.php-check-syntax.php',
1 => 'php_check_syntax',
),
);
$setup["toc"] = $TOC;
$setup["parents"] = $PARENTS;
manual_setup($setup);
manual_header();
?>
<div id="function.pack" class="refentry">
<div class="refnamediv">
<h1 class="refname">pack</h1>
<p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">pack</span> — <span class="dc-title">Compacte des données dans une chaîne binaire</span></p>
</div>
<a name="function.pack.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>pack</b></span>
( <span class="methodparam"><span class="type">string</span> <tt class="parameter">$format</tt></span>
[, <span class="methodparam"><span class="type"><a href="language.pseudo-types.php#language.types.mixed" class="type mixed">mixed</a></span> <tt class="parameter">$args</tt></span>
[, <span class="methodparam"><span class="type"><a href="language.pseudo-types.php#language.types.mixed" class="type mixed">mixed</a></span> <tt class="parameter">$...</tt></span>
]] )</div>
<p class="para rdfs-comment">
Compacte les arguments <i><tt class="parameter">args</tt></i>
dans une chaîne binaire, suivant le format <i><tt class="parameter">format</tt></i>
.
</p>
<p class="para">
Le concept vient du Perl et tout le formatage fonctionne de
la même façon qu'en Perl, mais quelques formats manquent
encore (comme "<i>u</i>")..
</p>
<p class="para">
Notez que la distinction entre signé et non signé
n'affecte que la fonction <a href="function.unpack.php" class="function">unpack()</a>, tandis que
la fonction <b>pack()</b> fournira le même
résultat pour les deux formats.
</p>
<p class="para">
De plus, notez que PHP enregistre de manière interne et
intégrale les valeurs : cette représentation dépend de la machine.
Si vous essayez d'enregistrer une valeur trop grande, elle risque
d'être convertie en <a href="language.types.float.php" class="type float">float</a> et de donner lieu à des
effets de bords vicieux.
</p>
</div>
<a name="function.pack.parameters"></a><div class="refsect1 parameters">
<h3 class="title">Liste de paramètres</h3>
<p class="para">
</p><dl>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">format</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
La <a href="language.types.string.php" class="link">chaîne de caractères</a> <i><tt class="parameter">format</tt></i>
consiste en des codes
de format suivis par un argument répéteur optionnel. Le répéteur
peut être soit une valeur entière, soit <i>*</i> pour
une répétition jusqu'à la fin des données d'entrées. Pour a, A, h, H,
le répéteur spécifie combien de caractères d'une donnée est pris, pour
@, c'est la position absolue où l'on insère les prochaines données, pour
tout le reste, le répéteur spécifie combien d'arguments de données sont
consommés et compactés dans la chaîne binaire résultante.
</p>
<p class="para">
Les formats actuellement acceptés sont :
</p><table class="doctable table">
<caption><b>Caractères de formatage pour <b>pack()</b></b></caption>
<thead valign="middle">
<tr valign="middle">
<th>Code</th>
<th>Description</th>
</tr>
</thead>
<tbody valign="middle" class="tbody">
<tr valign="middle">
<td align="left">a</td>
<td align="left">NUL - Une chaîne complétée avec <b><tt class="constant">NULL</tt></b></td>
</tr>
<tr valign="middle">
<td align="left">A</td>
<td align="left">SPACE - Une chaîne complétée avec un espace</td></tr>
<tr valign="middle">
<td align="left">h</td>
<td align="left">Chaîne hexadécimale h, bit de poids faible en premier</td></tr>
<tr valign="middle">
<td align="left">H</td>
<td align="left">Chaîne hexadécimale H, bit de poids fort en premier</td></tr>
<tr valign="middle">
<td align="left">c</td>
<td align="left">Caractère signé</td></tr>
<tr valign="middle">
<td align="left">C</td>
<td align="left">Caractère non signé</td></tr>
<tr valign="middle">
<td align="left">s</td>
<td align="left">entier court signé (toujours sur 16 bits, ordre des bits dépendant de la machine)</td>
</tr>
<tr valign="middle">
<td align="left">S</td>
<td align="left">entier court non signé (toujours 16 bits, ordre des bits dépendant de la machine)</td>
</tr>
<tr valign="middle">
<td align="left">n</td>
<td align="left">entier cours non signé (toujours 16 bits, ordre des bits big endian)</td>
</tr>
<tr valign="middle">
<td align="left">v</td>
<td align="left">entier cours non signé (toujours 16 bits, ordre des bits little endian)</td>
</tr>
<tr valign="middle">
<td align="left">i</td>
<td align="left">entier signé (taille et ordre des bits dépendants de la machine)</td>
</tr>
<tr valign="middle">
<td align="left">I</td>
<td align="left">entier non signé (taille et ordre des bits dépendants de la machine)</td>
</tr>
<tr valign="middle">
<td align="left">l</td>
<td align="left">entier long signé (toujours 32 bits, ordre des bits dépendant de la machine)</td>
</tr>
<tr valign="middle">
<td align="left">L</td>
<td align="left">entier long non signé (toujours 32 bits, ordre des bits dépendant de la machine)</td>
</tr>
<tr valign="middle">
<td align="left">N</td>
<td align="left">entier long non signé (toujours 32 bits, ordre des bits big endian)</td>
</tr>
<tr valign="middle">
<td align="left">V</td>
<td align="left">entier long non signé (toujours 32 bits, ordre des bits little endian)</td>
</tr>
<tr valign="middle">
<td align="left">f</td>
<td align="left">nombre à virgule flottante (taille et représentation dépendantes de la machine)</td>
</tr>
<tr valign="middle">
<td align="left">d</td>
<td align="left">nombre à virgule flottante double (taille et représentation dépendantes de la machine)</td>
</tr>
<tr valign="middle">
<td align="left">x</td>
<td align="left">caractère NUL</td>
</tr>
<tr valign="middle">
<td align="left">X</td>
<td align="left">Recule d'un caractère</td>
</tr>
<tr valign="middle">
<td align="left">@</td>
<td align="left">Remplit avec des NUL jusqu'à la position absolue</td>
</tr>
</tbody>
</table>
<p>
</p>
</dd>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">args</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
</p>
</dd>
</dl>
<p>
</p>
</div>
<a name="function.pack.returnvalues"></a><div class="refsect1 returnvalues">
<h3 class="title">Valeurs de retour</h3>
<p class="para">
Retourne une <a href="language.types.string.php" class="link">chaîne de caractères</a> binaire contenant les données.
</p>
</div>
<a name="function.pack.examples"></a><div class="refsect1 examples">
<h3 class="title">Exemples</h3>
<p class="para">
</p><div class="example">
<p><b>Exemple #1 Exemple avec <b>pack()</b></b></p>
<div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB"><?php<br />$binarydata </span><span style="color: #007700">= </span><span style="color: #0000BB">pack</span><span style="color: #007700">(</span><span style="color: #DD0000">"nvc*"</span><span style="color: #007700">, </span><span style="color: #0000BB">0x1234</span><span style="color: #007700">, </span><span style="color: #0000BB">0x5678</span><span style="color: #007700">, </span><span style="color: #0000BB">65</span><span style="color: #007700">, </span><span style="color: #0000BB">66</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
</span>
</code></div>
</div>
<div class="example-contents para"><p>
La chaîne binaire résultante aura 6 octets de long,
et contiendra la séquence 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.
</p></div>
</div><p>
</p>
</div>
<a name="function.pack.seealso"></a><div class="refsect1 seealso">
<h3 class="title">Voir aussi</h3>
<p class="para">
</p><ul class="simplelist">
<li class="member"><a href="function.unpack.php" class="function" rel="rdfs-seeAlso">unpack()</a> - Déconditionne des données depuis une chaîne binaire</li>
</ul><p>
</p>
</div>
</div><?php manual_footer(); ?>