Et ça, il n'y a qu'un seul fautif, ce n'est ni Windows, ni Linux, ni la décompression de Wordpress => c'est la faute de ton éditeur de code.
Désolé faux, je ne dis pas ça.
Je dis que lors du chargement d'un plugin depuis une machine windows vers une machine Linux, les fichiers textes contiennent exportés l'ont été en mode binaire et les fins de ligne sont des CRLF. Alors après le téléchargement vers windows les fins de ligne sont marquées par CRCRLF. Il n'y a pas d'éditeur impliqué, uniquement deux procédures :
- Upload WordPress
- Filezilla
A noter
Il est rapporté en notes sur le site Filezilla :
Filezilla : Data_Type
Note in Filezilla project
https://wiki.filezilla-project.org/Data_Type
FileZilla does not analyse files uploaded as ASCII in any way. So if you have mixed line endings, somewhat "unexpected" things can happen. The native line ending for Windows is CR+LF. As this is what the FTP server expects when transferring files in ASCII, FileZilla on Windows does not apply any line ending translation at all. Now, imagine there is a text file with mixed Windows (CR+LF) and Unix (LF) line endings. Uploading that file from a Windows-based system to a Unix-based system will result in all CR+LF translated to LF only. Downloading that file again will make the FTP server convert all LF to CR+LF while sending it to FileZilla. As a result, all LF effectively are converted to CR+LF.
Another example is a text file with mixed line endings. FileZilla on Windows uploads that file to an FTP server running on Windows - no line ending conversion is done at all. Some text editors transparently handle mixed line endings so in such a text editor, the text file looks fine. However, other programs do not handle these cases and the text file might not work as expected in programs running on the server consuming that text file because they are confused by the still embedded Unix-style line endings (LF).
In yet another example, a Windows (CR+LF) text file was uploaded to a Unix-based FTP server in binary. If that file is downloaded in ASCII, the FTP server translates LF to CR+LF so the CR+LF line endings will be converted to CR+CR+LF. FileZilla on Windows does expect the file to already use CR+LF line encoding (per FTP specification), so no more translation is done. Depending on the text editor used, lines might be separated by an additional empty line now.
La seule chose que tu as trouvée si je comprends bien ton message, c'est qu'il y avait des problèmes de retours à la ligne incorrects dans ton code.
Faux : j'explique que plus de 1000 fichiers texte de l'installation wordpress (plugins chargés) contiennent le problème : fins de lignes CRLF sous Linux devenant normalement CRCRLF après importation vers windows. Et justement ce n'est pas le cas du code que j'ai créé parce que lors de son chargement vers linux les CRLF (windows correctement gérés pas mon éditeur) deviennent naturellement LF seul (convention Unix) comme il convient.
Je dis que j'ai vérifié que le simple fait de remplacer par les moyens adaptés des codes invalides CRCRLF par CRLF suffit (sur un code qui n'est pas le mien) à faire disparaitre un plantage d'exécution php.
Tous les éditeurs de code décents permettent de gérer correctement les retours à la ligne et n'insèrent pas des CRCRLF en caractère de retour à la ligne.
Je n'ai jamais laissé supposer une pareille chose, j'ai décrit avec précision le mécanisme en cause qui n'impliquer pas l'éditeur.
Maintenant il est possible avec un éditeur de texte, paramétré pour nettoyer le code (remplacer CRCRLF par CRLF lors de la sauvegarde ou au chargement, peu importe), de réaliser l'opération, Mais au lieu d'éditer à la suite plus de dix mille fichiers j'ai préféré utiliser WinGrep (seul utilitaire permettant d'effectuer le traitement) qui a traité le problème en quelques secondes. Néanmoins un éditeur binaire (Code affiché en Hexa) est capable de faire l'opération, mais fichier par fichier, et il faut avoir ouvert le fichier pour constater l'anomalie, ou soupçonner quand Scite ou PhpStorm ou PSPad affiche des doubles lignes (interprète par défaut CRCRLF comme CRLFCRLF pour l'affichage)
Bien sur, ensuite ne plus utiliser le processus d'importation de plugin utilisant un Fichier zip téléchargé.
Quand a "phpstorm" que j'utilise majoritairement c'st un excellent éditeur parfaitement fiable, et j'ai je crois signalé que j'ai testé divers éditeurs, dont la liste principale est : "Eclipse", "Scite", "PSPad", "PhpStorm" et vérifié leur comportement lorsque l'on leur donne à traiter des fichiers "anormaux".
Oui, je peux montrer un site qui plante, mais pas comment dans le détail. Par contre le remplacement généralisé des fins de ligne en anomalie fait que le code se met à fonctionner.
Maintenant, je ne suis pas en mesure de présenter un exemple "simple" qui le montre, la réponse est non. Parce que c'est économiquement impossible sauf à avoir beaucoup de chance, ceci en l'absence de moyen de détecter dans l'anomalie (250 000 lignes de code concernées) l'instance ou les instances qui créent la conséquence observée et par quel mécanisme. C'est à dire avoir résolu tout le problème.
Pour l'instant je me contente d'avoir un code qui à un comportement prévisible et le moyen de le déboguer quand l y a lieu.
Cordialement
Trebly