<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration71.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'migration71.windows-support.php',
    1 => 'Support Windows',
    2 => 'Support Windows',
  ),
  'up' => 
  array (
    0 => 'migration71.php',
    1 => 'Migration de PHP 7.0.x vers PHP 7.1.x',
  ),
  'prev' => 
  array (
    0 => 'migration71.other-changes.php',
    1 => 'Autres changements',
  ),
  'next' => 
  array (
    0 => 'migration70.php',
    1 => 'Migration de PHP 5.6.x vers PHP 7.0.x',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'appendices/migration71/windows-support.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration71.windows-support" class="sect1">
 <h2 class="title">Support Windows</h2>

 <div class="sect2" id="migration71.windows-support.long-and-utf8-path">
  <h3 class="title">Support pour les chemins longs et UTF-8</h3>
  <p class="para">
   Si une application web est conforme à l&#039;UTF-8, aucune action supplémentaire n&#039;est requise.
   Pour des applications qui dépendent de chemins dans un encodage différent que UTF-8 pour l&#039;I/O,
   une directive INI doit être explicitement définie. La vérification des paramètres d&#039;encodage INI
   se fie à l&#039;ordre dans le cœur (core) :
  </p>
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara">
     internal_encoding
    </span>
   </li>
    <li class="listitem">
    <span class="simpara">
     default_charset
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     zend.multibyte
    </span>
   </li>
  </ul>
  <p class="para">
   Plusieurs fonctions pour la gestion des codepage ont été introduites :
  </p>
      <ul class="itemizedlist">
       <li class="listitem">
        <span class="simpara">
         sapi_windows_cp_set() pour définir la page de codes par défaut
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         sapi_windows_cp_get() pour récupérer la page de codes actuelle
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         sapi_windows_cp_is_utf8()
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         sapi_windows_cp_conv() pour convertir entre les pages de codes, en utilisant une signature compatible avec iconv()
        </span>
       </li>
      </ul>
  <p class="para">
   Ces fonctions sont thread safe.
  </p>
  <p class="para">
   La sortie de la console codepage est ajustée en fonction de l&#039;encodage utilisé
   en PHP. En fonction du codepage OEM du système concret, la sortie visible
   pourrait ou pourrait ne pas être correcte. Par exemple, avec le cmd.exe par
   défaut et sur un système avec le codepage OEM 437, les sorties en codepage 1251,
   1252, 1253 et d&#039;autres peuvent être affichées correctement en utilisant UTF-8.
   Sur les mêmes systèmes, les caractères dans codepage tel que 20932 ne seront
   probablement pas affichés correctement.
   Ceci fait référence aux règles système particulières pour codepage, la
   compatibilité de la police et le choix du programme de console utilisé.
   PHP définit automatiquement la codepage console en accord avec les règles
   d&#039;encodages depuis php.ini. Utiliser des consoles alternatives à la place de
   cmd.exe directement pourrait apporter une meilleure expérience dans certains cas.
  </p>
  <p class="para">
   Toutefois il faut être conscient que changer de codepage après que la requête a commencé
   peut causer des effets secondaires inattendus en CLI. La façon préférable est php.ini.
   Quand PHP CLI est utilisée dans un émulateur de console, qui ne supporte pas Unicode,
   il est possiblement nécessaire, d&#039;éviter de changer la codepage de la console.
   La meilleure façon pour achever ceci est de définir l&#039;encodage interne ou par défaut pour
   correspondre à la codepage ANSI. Une autre méthode est de définir la directive INI
   output_encoding et input_encoding à la codepage requise, cependant dans ce cas la
   différence entre les codepages internes et I/O risque de causer du mojibake.
   Dans de rares cas, si PHP arrive à planter gracieusement, la codepage originale de la
   console peut ne pas être restaurée. Dans ce cas, la commande chcp peut être utilisée,
   pour la restaurer manuellement.
  </p>
  <p class="para">
   Attention particulière pour les systèmes DBCS - le changement de codepage lors de
   l&#039;exécution en utilisant <span class="function"><a href="function.ini-set.php" class="function">ini_set()</a></span> risque de causer des problèmes d&#039;affichage.
   À la différence des systèmes non DBCS, c&#039;est que les caractères étendus nécessitent deux consoles
   pour être affichés. Dans certains cas, seule la mise en correspondance des caractères dans
   le jeu de glyphes de la police pourrait se produire, aucun changement de police ne se produit. 
   Ceci est la nature des systèmes DBCS, la manière la plus simple de prévenir des problèmes 
   d&#039;affichages est d&#039;éviter l&#039;usage de <span class="function"><a href="function.ini-set.php" class="function">ini_set()</a></span> pour le changement de codepage.
  </p>
  <p class="para">
   En conséquence du support d&#039;UTF-8 dans les flux, les scripts PHP ne sont plus
   limités à des noms de fichiers ASCII ou ANSI. Ceci est prêt à l&#039;emploi en CLI.
   Pour d&#039;autres SAPI, la documentation pour le serveur correspondant est utile.
  </p>
  <p class="para">
   Le support des chemins longs est transparent. Les chemins plus longs que 260 octets sont
   automatiquement préfixés par <code class="literal">\\?\</code>. La longueur maximale du chemin est
   limitée à 2048 octets. Il faut être conscient que la limite des segments de chemin (longueur du
   basename) persiste.
  </p>
  <p class="para">
   Pour une meilleure portabilité, il est fortement recommandé de gérer les noms de fichiers,
   I/O et autres sujets connexes UTF-8. En outre, pour les applications console, l&#039;usage
   d&#039;une police TrueType est préférable et l&#039;usage de ini_set() pour
   le changement de codepage est déconseillé.
  </p>
  <p class="para">
  </p>
  <p class="para">
  </p>
 </div>

 <div class="sect2" id="migration71.windows-support.readline">
  <h3 class="title">readline</h3>

  <p class="para">
   L&#039;<a href="book.readline.php" class="link">extension readline</a> est supportée
   à travers la <a href="http://mingweditline.sourceforge.net/" class="link external">&raquo;&nbsp;bibliothèque
   WinEditLine</a>. Ainsi l&#039;interface système interactive <abbr title="Command Line Interpreter/Interface">CLI</abbr> est
   aussi supportée (<code class="literal">php.exe -a</code>).
  </p>
 </div>

 <div class="sect2" id="migration71.windows-support.php-fcgi-children">
  <h3 class="title">PHP_FCGI_CHILDREN</h3>
  <p class="para">
  <var class="varname">PHP_FCGI_CHILDREN</var> est désormais respecté. Si cette variable d&#039;environnement
   est définie, le premier processus <var class="filename">php-cgi.exe</var> exécutera le nombre
   spécifié d&#039;enfants. Ceux-ci partageront le même socket TCP.
  </p>
 </div>

 <div class="sect2" id="migration71.windows-support.ftok">
  <h3 class="title">ftok()</h3>
  <p class="para">
   Ajout du support pour <span class="function"><a href="function.ftok.php" class="function">ftok()</a></span>
  </p>
 </div>

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