Τα super globals της PHP είναι ενσωματωμένες μεταβλητές στις οποίες μπορείτε να έχετε πρόσβαση από όλα τα πεδία.
PHP Super Globals (PHP Super Globals)
Σε αυτό το μάθημα, θα εξηγήσουμε όλα τα super globals στην PHP με παραδείγματα. Διαβάστε παρακάτω για να μάθετε.
PHP Super Globals: $GLOBALS
Το $GLOBALS superglobal χρησιμοποιείται για πρόσβαση σε καθολικές μεταβλητές από οποιοδήποτε πεδίο (συμπεριλαμβανομένων συναρτήσεων ή μεθόδων) στο σενάριο PHP. Η PHP αποθηκεύει όλες τις καθολικές μεταβλητές σε έναν πίνακα που ονομάζεται $GLOBALS[index]. Το ευρετήριο περιέχει το όνομα της μεταβλητής. Το ακόλουθο παράδειγμα δείχνει πώς να χρησιμοποιήσετε τη μεταβλητή υπερσφαιρική $GLOBALS:
$number1 = 50;
$number2 = 20;
function addition(): int
{
return $GLOBALS[ 'number3' ] = $GLOBALS[ 'number2' ] + $GLOBALS[ 'number1' ];
}
echo addition();
// Çıktı: 70PHP Super Globals: $_REQUEST
Το PHP $_REQUEST είναι PHP superglobal που χρησιμοποιείται για τη συλλογή δεδομένων από φόρμα HTML.
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_REQUEST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>Στο παραπάνω παράδειγμα, δημιουργήσαμε μια φόρμα που επιστρέφει δεδομένα με τη μέθοδο ανάρτησης. Το ενεργοποιήσαμε για να επιστρέψει τα δεδομένα στην ίδια σελίδα με $_SERVER['PHP_SELF']. Επαληθεύσαμε ότι το αίτημα που συνοδεύει το υπερ-καθολικό $_SERVER['REQUEST_METHOD'] είναι αίτημα ανάρτησης. Στη συνέχεια, εκχωρήσαμε με ασφάλεια τα δεδομένα από την είσοδο με το όνομα fname με την τιμή του ονόματος στη μεταβλητή $name με το $_REQUEST superglobal χρησιμοποιώντας τη συνάρτηση htmlspecialchars(). Ελέγξαμε εάν η μεταβλητή $name είναι κενή ή όχι με τη συνθήκη if της PHP. Εάν είναι κενό, εκτυπώνουμε την έξοδο "No name", διαφορετικά εκτυπώνουμε τα δεδομένα της μεταβλητής $name.
PHP Super Globals: $_POST
Το PHP $_POST είναι ένα PHP superglobal που χρησιμοποιείται για τη συλλογή δεδομένων από τη φόρμα HTML μέσω της μεθόδου POST.
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_POST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>Στο παραπάνω παράδειγμα, δημιουργήσαμε μια φόρμα που επιστρέφει δεδομένα με τη μέθοδο ανάρτησης. Το ενεργοποιήσαμε για να επιστρέψει τα δεδομένα στην ίδια σελίδα με $_SERVER['PHP_SELF']. Επαληθεύσαμε ότι το αίτημα που συνοδεύει το υπερ-καθολικό $_SERVER['REQUEST_METHOD'] είναι αίτημα ανάρτησης. Στη συνέχεια, εκχωρήσαμε με ασφάλεια τα δεδομένα από την είσοδο με το όνομα fname με την τιμή του ονόματος στη μεταβλητή $name με το $_POST superglobal χρησιμοποιώντας τη συνάρτηση htmlspecialchars(). Ελέγξαμε εάν η μεταβλητή $name είναι κενή ή όχι με τη συνθήκη if της PHP. Εάν είναι κενό, εκτυπώνουμε την έξοδο "No name", διαφορετικά εκτυπώνουμε τα δεδομένα της μεταβλητής $name.
PHP Super Globals: $_GET
Το PHP $_GET είναι ένα PHP superglobal που χρησιμοποιείται για τη συλλογή δεδομένων από τη φόρμα HTML μέσω της μεθόδου GET. Μπορούμε επίσης να ανακτήσουμε τα δεδομένα που αποστέλλονται με το get στη διεύθυνση url με το $_GET superglobal.
Λήψη δεδομένων από τη φόρμα με PHP $_GET Super Global
Στο παρακάτω παράδειγμα, λάβαμε δεδομένα από τη φόρμα HTML με το PHP $_GET superglobal.
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'GET') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_GET[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>Στο παραπάνω παράδειγμα, δημιουργήσαμε μια φόρμα που επιστρέφει δεδομένα με τη μέθοδο ανάρτησης. Το ενεργοποιήσαμε για να επιστρέψει τα δεδομένα στην ίδια σελίδα με $_SERVER['PHP_SELF']. Επαληθεύσαμε ότι το αίτημα που συνοδεύει το υπερ-καθολικό $_SERVER['REQUEST_METHOD'] είναι αίτημα ανάρτησης. Στη συνέχεια, εκχωρήσαμε με ασφάλεια τα δεδομένα από την είσοδο με το όνομα fname με την τιμή του ονόματος στη μεταβλητή $name με το $_POST superglobal χρησιμοποιώντας τη συνάρτηση htmlspecialchars(). Ελέγξαμε εάν η μεταβλητή $name είναι κενή ή όχι με τη συνθήκη if της PHP. Εάν είναι κενό, εκτυπώνουμε την έξοδο "No name", διαφορετικά εκτυπώνουμε τα δεδομένα της μεταβλητής $name.
Λήψη δεδομένων από τη διεύθυνση URL με PHP $_GET Super Global
Στο παρακάτω παράδειγμα, ανακτήσαμε δεδομένα από τη διεύθυνση URL με το PHP $_GET superglobal.
<!DOCTYPE html>
<html>
<body>
<a href="<?php
echo $_SERVER[ 'PHP_SELF' ] ?>?name=Onur%20Özden&website=www.onurozden.com.tr">Buraya Tıkla</a>
<?php
echo "Ben " . $_GET[ 'name' ] . " şu sitede PHP öğreniyorum: " . $_GET[ 'website' ];
?>
</body>
</html>Στο παραπάνω παράδειγμα, αντί να πληκτρολογήσουμε το όνομα του αρχείου σας, πήραμε το όνομα αρχείου χρησιμοποιώντας το $_SERVER superglobal. Τώρα ας εξηγήσουμε τι κάναμε σε αυτό το παράδειγμα. Δημιουργήσαμε ένα έγγραφο HTML και δώσαμε την παράμετρο ονόματος στο αρχείο get.php. Δώσαμε στην παράμετρο name την τιμή «Onur Özden» και διαχωρίσαμε τις παραμέτρους με το σύμβολο «&». Στη συνέχεια, δημιουργήσαμε την παράμετρο της ιστοσελίδας και της δώσαμε την τιμή "onurozden.com.tr". Εκτυπώσαμε το κείμενο "Click Here" στην ετικέτα A. Ερχόμενοι στο τμήμα PHP, εκτυπώσαμε το "My name" με echo και χρησιμοποιήσαμε το $_GET superglobal με τον τελεστή συνένωσης για να ανακτήσουμε και να εκτυπώσουμε τα δεδομένα της παραμέτρου με το όνομα όνομα. Και πάλι, χρησιμοποιώντας τον τελεστή συγχώνευσης, εκτυπώσαμε το " and my website ". Χρησιμοποιήσαμε ξανά τον τελεστή συνδεσμολογίας και πήραμε τα δεδομένα της παραμέτρου του ιστότοπου με το $GET superglobal και τα εκτυπώσαμε.
PHP Super Globals: $_SERVER
Το $_SERVER superglobal είναι μια υπερσφαιρική μεταβλητή PHP που περιέχει πληροφορίες σχετικά με κεφαλίδες, διαδρομές και τοποθεσίες σεναρίων. Στο παρακάτω παράδειγμα, δείχνουμε πώς να χρησιμοποιήσετε το $_SERVER superglobal.
echo $_SERVER['PHP_SELF'];
echo '</br>';
echo $_SERVER['SERVER_NAME'];
echo '</br>';
echo $_SERVER['HTTP_HOST'];
echo '</br>';
echo $_SERVER['HTTP_REFERER'];
echo '</br>';
echo $_SERVER['HTTP_USER_AGENT'];
echo '</br>';
echo $_SERVER['SCRIPT_NAME'];Στο παραπάνω παράδειγμα, ορίσαμε μεταβλητές με τα ονόματα $number1 και $number2 και τους δώσαμε τιμές τύπου number. Στη συνέχεια, ορίσαμε μια συνάρτηση που ονομάζεται πρόσθεση που επιστρέφει μια τιμή τύπου δεδομένων int. Είπαμε ότι στο $GLOBALS superglobal, τα ονόματα των μεταβλητών διατηρούνται ως ευρετήρια. Δημιουργήσαμε τη μεταβλητή δημιουργώντας ένα ευρετήριο με το όνομα number3. Αντιστοιχίσαμε σε αυτήν τη μεταβλητή το άθροισμα της μεταβλητής $number2 και της μεταβλητής $number1, στην οποία αποκτήσαμε πρόσβαση από την καθολική περιοχή με το $GLOBALS superglobal. Στη συνέχεια, επιστρέψαμε αυτήν την τιμή με επιστροφή και τερματίσαμε τη συνάρτηση. Ως τελευταίο βήμα, βγάζουμε την τιμή στη συνάρτηση add() μας με echo.
Όλες οι χρήσεις της PHP $_SERVER Super Global
| $_SERVER['PHP_SELF'] | Επιστρέφει το όνομα αρχείου του εκτελεσμένου σεναρίου. |
| $_SERVER['GATEWAY_INTERFACE'] | Επιστρέφει την έκδοση CGI (Common Gateway Interface) που χρησιμοποιείται από τον διακομιστή. |
| $_SERVER['SERVER_ADDR'] | Επιστρέφει τη διεύθυνση IP του διακομιστή κεντρικού υπολογιστή. |
| $_SERVER['SERVER_NAME'] | Επιστρέφει το όνομα του κύριου διακομιστή. |
| $_SERVER['SERVER_SOFTWARE'] | Επιστρέφει το κείμενο αναγνώρισης διακομιστή (όπως Apache/2.2.24). |
| $_SERVER['SERVER_PROTOCOL'] | Επιστρέφει το όνομα και την έκδοση του πρωτοκόλλου πληροφοριών (όπως το HTTP/1.1). |
| $_SERVER['REQUEST_METHOD'] | Επιστρέφει τη μέθοδο αιτήματος που χρησιμοποιείται για την πρόσβαση στη σελίδα (όπως POST, GET). |
| $_SERVER['REQUEST_TIME'] | Επιστρέφει τη χρονική σήμανση της έναρξης του αιτήματος (π.χ. 1377687496). |
| $_SERVER['QUERY_STRING'] | Εάν η πρόσβαση στη σελίδα γίνεται μέσω μιας συμβολοσειράς ερωτήματος, επιστρέφει τη συμβολοσειρά ερωτήματος. |
| $_SERVER['HTTP_ACCEPT'] | Επιστρέφει την κεφαλίδα αποδοχής από το τρέχον αίτημα. |
| $_SERVER['HTTP_ACCEPT_CHARSET'] | Επιστρέφει την κεφαλίδα Accept_Charset από το τρέχον αίτημα (όπως utf-8,ISO-8859-1). |
| $_SERVER['HTTP_HOST'] | Επιστρέφει την κεφαλίδα του κεντρικού υπολογιστή από το τρέχον αίτημα. |
| $_SERVER['HTTP_REFERER'] | Επιστρέφει την πλήρη διεύθυνση URL της τρέχουσας σελίδας (μη αξιόπιστη καθώς δεν την υποστηρίζουν όλοι οι πράκτορες χρήστη). |
| $_SERVER['HTTPS'] | Ελέγχει εάν το σενάριο υποβάλλεται σε ερώτημα μέσω ενός ασφαλούς πρωτοκόλλου HTTP (HTTPS). |
| $_SERVER['REMOTE_ADDR'] | Επιστρέφει τη διεύθυνση IP από την οποία ο χρήστης προβάλλει την τρέχουσα σελίδα. |
| $_SERVER['REMOTE_HOST'] | Επιστρέφει το όνομα κεντρικού υπολογιστή από όπου ο χρήστης προβάλλει την τρέχουσα σελίδα. |
| $_SERVER['REMOTE_PORT'] | Επιστρέφει τη θύρα που χρησιμοποιείται στο μηχάνημα του χρήστη για την επικοινωνία με τον διακομιστή web. |
| $_SERVER['SCRIPT_FILENAME'] | Επιστρέφει την απόλυτη διαδρομή του τρέχοντος σεναρίου που εκτελείται. |
| $_SERVER['SERVER_ADMIN'] | Επιστρέφει την τιμή που δίνεται στην οδηγία SERVER_ADMIN στο αρχείο διαμόρφωσης του διακομιστή web (εάν το σενάριό σας εκτελείται σε έναν εικονικό κεντρικό υπολογιστή, θα είναι η τιμή που ορίζεται για αυτόν τον εικονικό κεντρικό υπολογιστή) (όπως some@onurozden.com.tr). |
| $_SERVER['SERVER_PORT'] | Επιστρέφει τη θύρα στο μηχάνημα διακομιστή που χρησιμοποιείται από τον διακομιστή web για επικοινωνία (όπως 80). |
| $_SERVER['SERVER_SIGNATURE'] | Επιστρέφει την έκδοση διακομιστή και το όνομα εικονικού κεντρικού υπολογιστή που προστέθηκαν στη σελίδα που δημιουργείται από τον διακομιστή. |
| $_SERVER['PATH_TRANSLATED'] | Επιστρέφει τη διαδρομή που βασίζεται στο σύστημα αρχείων στο τρέχον σενάριο. |
| $_SERVER['SCRIPT_FILENAME'] | Επιστρέφει τη διαδρομή προς το τρέχον σενάριο. |
| $_SERVER['SCRIPT_URI'] | Επιστρέφει το URI της τρέχουσας σελίδας. |



