downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Our source is open

The syntax highlighted source is automatically generated by PHP from the plaintext script. If you're interested in what's behind the several functions we used, you can always take a look at the source of the following files:

Of course, if you want to see the source of this page, we have it available. You can also browse the SVN repository for this website on svn.php.net.

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> &mdash; <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&#039;en Perl, mais quelques formats manquent
   encore (comme &quot;<i>u</i>&quot;)..
  </p>
  <p class="para">
   Notez que la distinction entre signé et non signé
   n&#039;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&#039;enregistrer une valeur trop grande, elle risque
   d&#039;ê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&#039;à la fin des données d&#039;entrées. Pour a, A, h, H,
       le répéteur spécifie combien de caractères d&#039;une donnée est pris, pour
       @, c&#039;est la position absolue où l&#039;on insère les prochaines données, pour
       tout le reste, le répéteur spécifie combien d&#039;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&#039;un caractère</td>
          </tr>

          <tr valign="middle">
           <td align="left">@</td>
           <td align="left">Remplit avec des NUL jusqu&#039;à 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">&lt;?php<br />$binarydata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">pack</span><span style="color: #007700">(</span><span style="color: #DD0000">"nvc*"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x1234</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0x5678</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">65</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">66</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</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(); ?>
 
show source | credits | sitemap | contact | advertising | mirror sites