Δημιουργία εφαρμογών για όλα τα λειτουργικά συστήματα

Παλαιότερα, οι εφαρμογές που φτιάχνονταν είχαν ως σκοπό το να εκτελούνται στα συστήματα που φτιάχνονταν. Έτσι οι καταλήξεις .exe αφορούσαν εκτελέσιμα των windows, τα .sh και .run εκτελέσιμα των λειτουργικών linux κτλ. Αυτό συμβαίνει ακόμη και σήμερα. Όμως μία διαδικτυακή εφαρμογή πρέπει να μπορεί να εκτελεστεί σε όλα τα λειτουργικά συστήματα. Είτε ο server εκτελεί λειτουργικό windows, είτε λειτουργικό linux. Πώς όμως καταλαβαίνει η PHP τη διαφορά;



Αν σε ένα αρχείο PHP γράψουμε τον παρακάτω κώδικα και το εκτελέσουμε θα μας εμφανίσει το λειτουργικό σύστημα που χρησιμοποιείται:

echo PHP_OS;




Για παράδειγμα, αν εκτελούμε λογισμικό windows XP θα επιστραφεί η τιμή "WINNT". Όμως πώς μπορούμε να ξέρουμε όλα τα ονόματα που είχαν οι προηγούμενες εκδόσεις ή οι μεταγενέστερες εκδόσεις των Windows?



Η λογική είναι απλή! Τα Windows είτε 95, είτε 98, είτε 2000, είτε XP, είτε Vista, είτε 7 παραμένουν πάντοτε Windows και πιο γνωστά ως "WIN32". Αρκεί λοιπόν να ψάξουμε μέσα στη μεταβλητή PHP_OS για "WIN" και αν βρεθεί, σημαίνει πως βρισκόμαστε σε windows μηχάνημα, αλλιώς σε άλλο λειτουργικό. Αυτό γίνεται με τον παρακάτω κώδικα:

stristr(PHP_OS,"WIN")




Πού όμως μπορεί να χρησιμεύσει πράγματι αυτό; Αν έχετε ασχοληθεί με τη δημιουργία φόρμας για upload αρχείων, θα έχετε παρατηρήσει πως μερικά παραδείγματα, στο τέλος της διαδικασίας, εκτελούν ένα chmod($target,"0777");. Αυτή η εντολή όμως σε λειτουργικά windows επιστρέφει λάθος αφού δεν έχει κανένα νόημα.



Έτσι αρκεί ο παρακάτω κώδικας και θα δουλεύει το πρόγραμμα χωρίς πρόβλημα σε οποιοδήποτε λειτουργικό σύστημα

if(!stristr(PHP_OS,"WIN")){
chmod($target,"0777");
}

Comments

Popular Posts