<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = 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.sapi-windows-vt100-support.php',
    1 => 'sapi_windows_vt100_support',
    2 => 'Obtient ou d&eacute;finit le support VT100 pour le flux sp&eacute;cifi&eacute; associ&eacute; &agrave; un tampon de sortie d\'une console Windows.',
  ),
  'up' => 
  array (
    0 => 'ref.misc.php',
    1 => 'Fonctions diverses',
  ),
  'prev' => 
  array (
    0 => 'function.sapi-windows-set-ctrl-handler.php',
    1 => 'sapi_windows_set_ctrl_handler',
  ),
  'next' => 
  array (
    0 => 'function.show-source.php',
    1 => 'show_source',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/misc/functions/sapi-windows-vt100-support.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.sapi-windows-vt100-support" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">sapi_windows_vt100_support</h1>
  <p class="verinfo">(PHP 7 &gt;= 7.2.0, PHP 8)</p><p class="refpurpose"><span class="refname">sapi_windows_vt100_support</span> &mdash; <span class="dc-title">Obtient ou définit le support VT100 pour le flux spécifié associé à un tampon de sortie d&#039;une console Windows.</span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-function.sapi-windows-vt100-support-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>sapi_windows_vt100_support</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> <code class="parameter">$stream</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></span> <code class="parameter">$enable</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   Si <code class="parameter">enable</code> est <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>, la fonction retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> si le flux <code class="parameter">stream</code> a les codes de contrôle VT100 activés, sinon <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
  </p>
  <p class="para">
   Si <code class="parameter">enable</code> est un <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>, la fonction essaiera d&#039;activer ou de désactiver les fonctionnalités VT100 du flux <code class="parameter">stream</code>.
   Si la fonctionnalité a été activée (ou désactivée) avec succès, la fonction renverra <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> sinon.
  </p>
  <p class="para">
   Au démarrage, PHP essaie d&#039;activer la fonctionnalité VT100 des flux <strong><code><a href="reserved.constants.php#constant.stdout">STDOUT</a></code></strong>/<strong><code><a href="reserved.constants.php#constant.stderr">STDERR</a></code></strong>. Soit dit en passant, si ces flux sont redirigés vers un fichier, les fonctionnalités VT100 peuvent ne pas être activées.
  </p>
  <p class="para">
   Si le support VT100 est activé, il est possible d&#039;utiliser des séquences de contrôle telles qu&#039;elles sont connues du terminal VT100.
   Elles permettent la modification de la sortie du terminal. Sur Windows, ces séquences sont appelées séquences de terminal virtuel de console (Console Virtual Terminal Sequences).
  </p>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="simpara">
    Cette fonction utilise le drapeau <strong><code>ENABLE_VIRTUAL_TERMINAL_PROCESSING</code></strong> implémenté dans l&#039;API Windows 10, donc la fonctionnalité VT100 peut ne pas être disponible sur les anciennes versions de Windows.
   </p>
  </div>
 </div>

 
 <div class="refsect1 parameters" id="refsect1-function.sapi-windows-vt100-support-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <dl>
   
    <dt><code class="parameter">stream</code></dt>
    <dd>
     <p class="para">
      Le flux sur lequel la fonction va opérer.
     </p>
    </dd>
   
   
    <dt><code class="parameter">enable</code></dt>
    <dd>
     <p class="para">
      Si <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>, la fonctionnalité VT100 sera activée (si <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>) ou désactivée (si <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>).
     </p>
    </dd>
   
  </dl>
 </div>

 
 <div class="refsect1 returnvalues" id="refsect1-function.sapi-windows-vt100-support-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="para">
   Si <code class="parameter">enable</code> est <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>: retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> si la fonctionnalité VT100 est activée, sinon <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
  </p>
  <p class="para">
   Si <code class="parameter">enable</code> est un <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>: Cette fonction retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> en cas de succès ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si une erreur survient.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.sapi-windows-vt100-support-changelog">
  <h3 class="title">Historique</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Version</th>
      <th>Description</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.0.0</td>
      <td>
       <code class="parameter">enable</code> est désormais nullable.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

 
 <div class="refsect1 examples" id="refsect1-function.sapi-windows-vt100-support-examples">
  <h3 class="title">Exemples</h3>
  <div class="example" id="example-1">
   <p><strong>Exemple #1 Etat par défaut de <span class="function"><strong>sapi_windows_vt100_support()</strong></span></strong></p>
   <div class="example-contents"><p>
    Par défaut, <strong><code><a href="reserved.constants.php#constant.stdout">STDOUT</a></code></strong> et <strong><code><a href="reserved.constants.php#constant.stderr">STDERR</a></code></strong> ont la fonctionnalité VT100 activée.
   </p></div>
   <div class="example-contents"><div class="shcode"><pre class="shcode">php -r &quot;var_export(sapi_windows_vt100_support(STDOUT));echo &#039; &#039;;var_export(sapi_windows_vt100_support(STDERR));&quot;</pre>
</div></div>

   <div class="example-contents"><p>Résultat de l&#039;exemple ci-dessus est similaire à :</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">true true</pre>
</div>
   </div>
   <div class="example-contents"><p>
    De plus, si un flux est redirigé, la fonctionnalité VT100 ne sera pas activée:
   </p></div>
   <div class="example-contents"><div class="shcode"><pre class="shcode">php -r &quot;var_export(sapi_windows_vt100_support(STDOUT));echo &#039; &#039;;var_export(sapi_windows_vt100_support(STDERR));&quot; 2&gt;NUL</pre>
</div></div>

   <div class="example-contents"><p>Résultat de l&#039;exemple ci-dessus est similaire à :</p></div>
   <div class="example-contents screen"><br />
    true false<br />
   </div>
  </div>
  <div class="example" id="example-2">
   <p><strong>Exemple #2 Changement d&#039;état de <span class="function"><strong>sapi_windows_vt100_support()</strong></span></strong></p>
   <div class="example-contents"><p>
    Il ne sera pas possible d&#039;activer la fonctionnalité VT100 de <strong><code><a href="reserved.constants.php#constant.stdout">STDOUT</a></code></strong> ou <strong><code><a href="reserved.constants.php#constant.stderr">STDERR</a></code></strong> si le flux est redirigé.
   </p></div>
   <div class="example-contents"><div class="shcode"><pre class="shcode">php -r &quot;var_export(sapi_windows_vt100_support(STDOUT, true));echo &#039; &#039;;var_export(sapi_windows_vt100_support(STDERR, true));&quot; 2&gt;NUL</pre>
</div></div>

   <div class="example-contents"><p>Résultat de l&#039;exemple ci-dessus est similaire à :</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">true false</pre>
</div>
   </div>
  </div>
  <div class="example" id="example-3">
   <p><strong>Exemple #3 Exemple d&#039;utilisation avec le support VT100 activé</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$out </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #DD0000">'php://stdout'</span><span style="color: #007700">,</span><span style="color: #DD0000">'w'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$out</span><span style="color: #007700">, </span><span style="color: #DD0000">'Just forgot a lettr.'</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// bouge le curseur de deux caractères en arrière<br /></span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$out</span><span style="color: #007700">, </span><span style="color: #DD0000">"\033[2D"</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// Insère un blanc, décalant le texte existant vers la droite -&gt; Just forgot a lett r.<br /></span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$out</span><span style="color: #007700">, </span><span style="color: #DD0000">"\033[1@"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$out</span><span style="color: #007700">, </span><span style="color: #DD0000">'e'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

    <div class="example-contents"><p>L&#039;exemple ci-dessus va afficher :</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Just forgot a letter.</pre>
</div>
   </div>
  </div>
 </div>

</div><?php manual_footer($setup); ?>