Ma plate-forme normale de développement pour PHP est Linux. J'utilise un serveur de Red Hat pour mon site, mon entreprise utilise Red Hat et Fedora pour la production, et je Ubuntu à la maison. Je ne pouvais pas être plus heureux. Malheureusement, je suis maintenant obligé de passer beaucoup de travail à temps partiel en PHP sous Windows en utilisant WAMP.
Je dis cela est regrettable parce que je trouve sans cesse des choses qui supports Linux lequel Windows ne fonctionne pas. L'année dernière, elle a effectivement retardé un projet lorsque nous avons réalisé que WAMP a utilisé une version antérieure de PHP (ce qui a été fixé par le port de 5.3 à Windows). . Aujourd'hui, je viens d'apprendre que Alors, mes questions est la suivante: < b> est quelque part, ce qui me dit les différences actuelles entre Windows et Linux concernant PHP? b> p> Je ne cherche pas idiosyncrasies, comme ceux qu'on trouve dans les commentaires
checkdnsrr code> n'est pas porté sur Windows et l'ensemble pcntl code> bibliothèque est disponible p>
3 Réponses :
Premièrement, gardez à l'esprit que certains problèmes inter-plate-forme ne sont pas dues au manque de soutien, mais les idiosyncrasies que vous mentionnez, le pire qui me vient à l'esprit est la direction de la répertoire slash. Ou le problème n'est pas avec la plate-forme mais avec le serveur. Par exemple, Apache a des variables environnementales que IIS ne semble même pas qu'il semblerait que des choses au niveau HTTP et TCP / IP seraient neutres du système d'exploitation. P>
sur cette note: p>
Si c'était moi, je voudrais devenir fou et créer un script qui a raclé la page de la liste d'extensions entière et que vous l'avez systématiquement, vérifiez la page d'introduction pour "Windows" pour avoir une idée de ce qui est spécial ou non disponible. Mais c'est moi, je suis Zany. P>
Oh, et voici une liste rapide de bibliothèques que PHP se développe pour Windows ou ne se développera jamais: P>
Je suppose que si vous regardez la solution postée ci-dessus, c'est plus ou moins ce que j'ai fait. Je viens de combiner la réponse de Gordon avec cette idée.
Pour chaque fonction, appelle fonction_existes, par exemple
Et faites-le pour chaque fonction? Ce n'est pas terriblement élégant. En outre, la meur d'appel () signifierait que si la fonction n'existe pas (et c'est parmi une série de fonctions qui n'existent pas), il n'y aurait pas de retour sur toutes les autres fonctions.
Convenu, sur les deux chefs d'accusation; C'est un exemple simpliste de la manière de gérer le problème. D'autre part, je soupçonne qu'il n'y a qu'un petit sous-ensemble de fonctions qui posent problème, il n'est donc pas nécessaire de ne pas le faire pour toutes les fonctions une des appels (bien que si cela soit nécessaire, on pourrait sans trop de difficulté à créer un utilitaire qui analoguea le PHP et crée automatiquement un nouveau script qui appelle Funcion_exist pour chaque fonction appelée. Dans la pratique, j'ai trouvé l'approche ci-dessus pour travailler, bien que mes scripts PHP ne soient généralement pas très exigeants.
Je ne sais pas si un site comme si vous demandez exister existe, mais vous pouvez utiliser ces méthodes pour connaître une installation PHP: P>
get_defined_functions () code> < / a> - Array de toutes les fonctions définies li>
-
get_loaded_extensions () code> < / a> - Array avec les noms de tous les modules compilés et chargés li>
-
get_extension_funcs () code> < / a> - Array avec les noms des fonctions d'un module li>
ul>
Il est un peu difficile de dire: Ceci est disponible sous Windows et ce n'est pas sur une base générale em> pour souvent dépendre de la version PHP, ce qui peut tout autant d'affecter tout système d'exploitation. p>
Est-ce que get_loaded_extensions code> renvoie la même chose que phpinfo () ou couvre-t-il des extensions de base qui ne nécessitent pas de modifications dans le fichier de configuration?
Bien que cela ne soit pas techniquement i> répond à la question, il a la chose la plus proche possible.
( sidenote i>)
checkdnsrr code> est disponible sous Windows à partir de PHP5.3