|
| 1 | +<?xml version="1.0" encoding="utf-8"?> |
| 2 | +<!-- $Revision$ --> |
| 3 | +<!-- EN-Revision: 3cd337b4dc91c827399961b9b45524ae4f2b50c9 Maintainer: samesch Status: ready --> |
| 4 | + |
| 5 | +<sect1 xml:id="migration71.windows-support" xmlns:xlink="http://www.w3.org/1999/xlink"> |
| 6 | + <title>Windows-Unterstützung</title> |
| 7 | + |
| 8 | + <sect2 xml:id="migration71.windows-support.long-and-utf8-path"> |
| 9 | + <title>Unterstützung für lange Pfade und UTF-8-Pfade</title> |
| 10 | + <para> |
| 11 | + Wenn eine Webanwendung UTF-8-konform ist, sind keine weiteren Maßnahmen |
| 12 | + erforderlich. Für Anwendungen, die auf Pfade angewiesen sind, die nicht |
| 13 | + UTF-8-kodiert sind, muss eine explizite INI-Direktive gesetzt werden. Die |
| 14 | + Prüfung der INI-Einstellungen für die Kodierung hängt von der Reihenfolge |
| 15 | + im Kern ab: |
| 16 | + </para> |
| 17 | + <itemizedlist> |
| 18 | + <listitem> |
| 19 | + <simpara> |
| 20 | + internal_encoding |
| 21 | + </simpara> |
| 22 | + </listitem> |
| 23 | + <listitem> |
| 24 | + <simpara> |
| 25 | + default_charset |
| 26 | + </simpara> |
| 27 | + </listitem> |
| 28 | + <listitem> |
| 29 | + <simpara> |
| 30 | + zend.multibyte |
| 31 | + </simpara> |
| 32 | + </listitem> |
| 33 | + </itemizedlist> |
| 34 | + <para> |
| 35 | + Es wurden mehrere Funktionen zur Handhabung von Codepages eingeführt: |
| 36 | + </para> |
| 37 | + <itemizedlist> |
| 38 | + <listitem> |
| 39 | + <simpara> |
| 40 | + sapi_windows_cp_set(), um die Standard-Codepage festzulegen |
| 41 | + </simpara> |
| 42 | + </listitem> |
| 43 | + <listitem> |
| 44 | + <simpara> |
| 45 | + sapi_windows_cp_get(), um die aktuelle Codepage abzurufen |
| 46 | + </simpara> |
| 47 | + </listitem> |
| 48 | + <listitem> |
| 49 | + <simpara> |
| 50 | + sapi_windows_cp_is_utf8() |
| 51 | + </simpara> |
| 52 | + </listitem> |
| 53 | + <listitem> |
| 54 | + <simpara> |
| 55 | + sapi_windows_cp_conv(), um unter Verwendung einer mit iconv() |
| 56 | + kompatiblen Signatur zwischen Codepages zu konvertieren |
| 57 | + </simpara> |
| 58 | + </listitem> |
| 59 | + </itemizedlist> |
| 60 | + <para> |
| 61 | + Diese Funktionen sind threadsicher. |
| 62 | + </para> |
| 63 | + <para> |
| 64 | + Die Codepage für die Konsolenausgabe wird abhängig von der intern in PHP |
| 65 | + verwendeten Kodierung festgelegt. Je nach konkreter OEM-Codepage des |
| 66 | + Systems kann die sichtbare Ausgabe korrekt sein oder nicht. Zum Beispiel |
| 67 | + wird die Ausgabe in der standardmäßigen cmd.exe und auf einem System mit |
| 68 | + der OEM-Codepage 437 in den Codepages 1251, 1252, 1253 und einigen anderen |
| 69 | + korrekt angezeigt, wenn UTF-8 verwendet wird. Auf dem gleichen System |
| 70 | + werden Zeichen in Codepages wie 20932 wahrscheinlich nicht korrekt |
| 71 | + angezeigt. Dies hängt ab von den jeweiligen Systemregel für die Codepage, |
| 72 | + der Kompatibilität der Schriftart und dem verwendeten Konsolenprogramm. PHP |
| 73 | + konfiguriert die Codepage der Konsole automatisch gemäß den |
| 74 | + Kodierungsregeln der php.ini. Eine andere Konsole zu verwenden als cmd.exe |
| 75 | + selbst, kann in manchen Fällen zu einem besseren Ergebnis führen. |
| 76 | + </para> |
| 77 | + <para> |
| 78 | + Es ist jedoch zu beachten, dass ein Wechsel der Codepage zur Laufzeit nach |
| 79 | + dem Start der Anfrage unerwartete Nebeneffekte auf die CLI haben kann. Die |
| 80 | + bevorzugte Methode führt über die php.ini. Wenn PHP-CLI in einem |
| 81 | + Konsolen-Emulator verwendet wird, der kein Unicode unterstützt, ist es |
| 82 | + möglicherweise ratsam, die Konsolen-Codepage nicht zu ändern. Die beste |
| 83 | + Möglichkeit, dies zu erreichen, ist, die Standard- oder interne Kodierung |
| 84 | + entsprechend der ANSI-Codepage einzustellen. Eine Alternative ist, die |
| 85 | + INI-Direktiven output_encoding und input_encoding auf die gewünschte |
| 86 | + Codepage zu setzen, wobei in diesem Fall der Unterschied zwischen interner |
| 87 | + und E/A-Codepage jedoch wahrscheinlich zu Zeichensalat führt. In seltenen |
| 88 | + Fällen kann es vorkommen, dass bei einem Absturz von PHP die ursprüngliche |
| 89 | + Konsolen-Codepage möglicherweise nicht wiederhergestellt wird. In diesem |
| 90 | + Fall kann der Befehl chcp verwendet werden, um sie manuell |
| 91 | + wiederherzustellen. |
| 92 | + </para> |
| 93 | + <para> |
| 94 | + Besondere Vorsicht ist bei DBCS-Systemen (Systeme mit |
| 95 | + Doublebyte-Characterset) geboten - die Codepage zur Laufzeit mittels |
| 96 | + <function>ini_set</function> zu ändern, kann zu Darstellungsproblemen |
| 97 | + führen. Der Unterschied zu Nicht-DBCS-Systemen ist, dass die erweiterten |
| 98 | + Zeichen zwei Konsolenzellen für die Anzeige benötigen. In bestimmten Fällen |
| 99 | + kann es vorkommen, dass Zeichen in den Glyphensatz der Schriftart |
| 100 | + abgebildet werden, ohne die Schriftart zu ändern. Dies liegt in der Natur |
| 101 | + der DBCS-Systeme und die einfachste Methode, Darstellungsprobleme zu |
| 102 | + vermeiden, besteht darin, die Codepage nicht per |
| 103 | + <function>ini_set</function> zu ändern. |
| 104 | + </para> |
| 105 | + <para> |
| 106 | + Infolge der Unterstützung von UTF-8 in den Streams sind PHP-Skripte nicht |
| 107 | + mehr auf nicht mehr auf ASCII- oder ANSI-Dateinamen beschränkt. Dies wird |
| 108 | + standardmäßig von der CLI unterstützt. Für andere SAPIs ist die |
| 109 | + Dokumentation für den entsprechenden Server hilfreich. |
| 110 | + </para> |
| 111 | + <para> |
| 112 | + Die Unterstützung langer Pfade ist transparent. Pfaden, die mehr als 260 |
| 113 | + Bytes haben, wird automatisch ein <literal>\?\</literal> vorangestellt. Die |
| 114 | + maximale Pfadlänge ist auf 2048 Bytes begrenzt. Es ist zu beachten, dass |
| 115 | + die Begrenzung der Pfadsegmente (Länge des Basisnamens) weiterhin gilt. |
| 116 | + </para> |
| 117 | + <para> |
| 118 | + Um die beste Portabilität zu erreichen, wird dringend empfohlen, für |
| 119 | + Dateinamen, I/O und andere verwandte Themen UTF-8 zu verwenden. Außerdem |
| 120 | + ist für Konsolenanwendungen eine TrueType-Schriftart zu bevorzugen. Darüber |
| 121 | + hinaus wird davon abgeraten, ini_set() für für die Änderung der Codepage zu |
| 122 | + verwenden. |
| 123 | + </para> |
| 124 | + </sect2> |
| 125 | + |
| 126 | + <sect2 xml:id="migration71.windows-support.readline"> |
| 127 | + <title>readline</title> |
| 128 | + <para> |
| 129 | + Die Erweiterung <link linkend="book.readline">readline</link> wird nun von |
| 130 | + der <link xlink:href="&url.readline.windows;">WinEditLine</link>-Bibliothek |
| 131 | + unterstützt, wodurch die interaktive <acronym>CLI</acronym>-Shell nun |
| 132 | + ebenfalls unterstützt wird (<literal>php.exe -a</literal>). |
| 133 | + </para> |
| 134 | + </sect2> |
| 135 | + |
| 136 | + <sect2 xml:id="migration71.windows-support.php-fcgi-children"> |
| 137 | + <title>PHP_FCGI_CHILDREN</title> |
| 138 | + <para> |
| 139 | + Die Umgebungsvariable <varname>PHP_FCGI_CHILDREN</varname> wird nun |
| 140 | + berücksichtigt. Wenn sie definiert ist, führt der erste |
| 141 | + <filename>php-cgi.exe</filename>-Prozess die angegebene Anzahl von |
| 142 | + Unterprozessen aus. Diese teilen sich denselben TCP-Socket. |
| 143 | + </para> |
| 144 | + </sect2> |
| 145 | + |
| 146 | + <sect2 xml:id="migration71.windows-support.ftok"> |
| 147 | + <title>ftok()</title> |
| 148 | + <para> |
| 149 | + Die Unterstützung für <function>ftok</function> wurde hinzugefügt |
| 150 | + </para> |
| 151 | + </sect2> |
| 152 | + |
| 153 | +</sect1> |
| 154 | + |
| 155 | +<!-- Keep this comment at the end of the file |
| 156 | +Local variables: |
| 157 | +mode: sgml |
| 158 | +sgml-omittag:t |
| 159 | +sgml-shorttag:t |
| 160 | +sgml-minimize-attributes:nil |
| 161 | +sgml-always-quote-attributes:t |
| 162 | +sgml-indent-step:1 |
| 163 | +sgml-indent-data:t |
| 164 | +indent-tabs-mode:nil |
| 165 | +sgml-parent-document:nil |
| 166 | +sgml-default-dtd-file:"~/.phpdoc/manual.ced" |
| 167 | +sgml-exposed-tags:nil |
| 168 | +sgml-local-catalogs:nil |
| 169 | +sgml-local-ecat-files:nil |
| 170 | +End: |
| 171 | +vim600: syn=xml fen fdm=syntax fdl=2 si |
| 172 | +vim: et tw=78 syn=sgml |
| 173 | +vi: ts=1 sw=1 |
| 174 | +--> |
0 commit comments