Mir bleibt nur weiterhin schleierhaft, warum der Online-Server es anders handhabt als der Offline-Server …
XAMPP trifft etliche Voreinstellungen, die nicht denen entsprechen, mit denen die Programme (Apache, MySQL, PHP) sonst ausgeliefert werden.
Anderes liegt eben an Windows selbst: In der PHP-Doc wird an so einigen Stellen beschrieben, was unter Windows nicht geht. Liegt teils am Dateisystem, teils am Netzwerk-Stack, teilweise an der Unvollständigkeit der C-Lib für Windows oder so… Es gibt aber auch „NUR-Windows-Funktionalitäten“. Ich vermute nur nicht, dass Du darauf gestoßen bist.
Und die Sache mit der GROSS/klein-Schreibung? Das liegt schlicht daran, dass Microsoft da seit MS-DOS und Window 95 großen Mist mit sich rumschleppt und zur PRÄ-ASCII-Vergangenheit kompatibel bleiben will - damit manche Benutzer oder „Programmierer“ nicht weinen.
Noch ein Grund:
Soweit ich das noch weiß lädt XAMPP PHP als Modul des Apache - genau so wie es auch auf „Allerwelts-Testinstallationen“ der Linux-Distributionen installiert wird. Aber auf echten Servern hast Du regelmäßig PHP als „sonstwas-cgi“ (hier seit einigen Tagen „fpm-cgi“ wegen HTTP2) laufen. Und tatsächlich gibt es dann Dinge die PHP eben nur als Modul kann. Dies weil diese Funktionalitäten z.B. voraussetzen, das PHP (als Modul des Apache-Webservers) mit diesem zusammen quasi durchläuft. Nur zum Beispiel: Das Aufrechterhalten und die Weiterverwendung der Datenbankverbindung (konkreter: der aufgebauten TCP-Verbindung) über das Skript(sic!)ende hinaus.
Ein Blick nach /etc/php/x.y/zeigt Dir, dass es schon systemweit mehrere PHP-Inis gibt. Ich habe hier:
/etc/php/8.2
+ /cgi
+ /cli
+ /embed
+ /fpm