Ανακτήστε το πλήρες URL στη PHP

Retrieve Full Url Php



Δύο τύποι καθολικών μεταβλητών μπορούν να χρησιμοποιηθούν στην PHP: η υπερ-παγκόσμια μεταβλητή και η μεταβλητή που ορίζεται από τον χρήστη. $ _SERVER είναι μια μεταβλητή υπερσφαιρικής συστοιχίας που χρησιμοποιείται για την ανάκτηση της πλήρους διαδρομής της τρέχουσας σελίδας. Το πρωτόκολλο (HTTP ή HTTPS) της διεύθυνσης URL απαιτείται επίσης για να λάβετε το πλήρες URL της σελίδας. Αν $ _SERVER [‘HTTPS’] επιστρέφει 'επί', τότε το HTTPS θα χρησιμοποιηθεί με τη διεύθυνση URL, διαφορετικά, HTTP θα χρησιμοποιηθεί. Πώς μπορεί να ανακτηθεί η πλήρης διεύθυνση URL της τρέχουσας σελίδας χρησιμοποιώντας το $ _SERVER Ο πίνακας εξηγείται σε αυτό το σεμινάριο.

Απαραίτητες μεταβλητές

Οι ακόλουθες υπερσφαιρικές μεταβλητές απαιτούνται για να μάθετε τη διεύθυνση URL της τρέχουσας σελίδας.







Υπερφαιρικές μεταβλητές Σκοποί
$ _SERVER [‘HTTPS’] Επιστρέφει επί εάν χρησιμοποιείται το πρωτόκολλο HTTPS στη διεύθυνση URL της τρέχουσας σελίδας.
$ _SERVER [‘HTTP_HOST’] Επιστρέφει το όνομα του διακομιστή της τρέχουσας σελίδας.
$ _SERVER [‘REQUEST_URI’] Επιστρέφει το όνομα πόρου που ζητήθηκε.
$ _SERVER [‘SERVER_PORT’] Επιστρέφει τον αριθμό θύρας του διακομιστή.
$ _SERVER [‘QUERY_STRING’] Επιστρέφει την τιμή συμβολοσειράς ερωτήματος εάν υπάρχει στη διεύθυνση URL της τρέχουσας σελίδας.

Παράδειγμα 1: Εμφάνιση της διεύθυνσης URL της τρέχουσας σελίδας χρησιμοποιώντας μια δήλωση υπό όρους

Το ακόλουθο παράδειγμα δείχνει πώς μπορεί να χρησιμοποιηθεί η δήλωση υπό όρους για να χρησιμοποιηθεί το πρωτόκολλο στη διεύθυνση URL της τρέχουσας σελίδας. Δημιουργήστε ένα αρχείο PHP με το ακόλουθο σενάριο.



Η τιμή του $ _SERVER [‘HTTP_HOST’] χρησιμοποιείται για να λάβετε το όνομα τομέα της τρέχουσας διεύθυνσης URL. Η τιμή του $ _SERVER [‘REQUEST_URI’] χρησιμοποιείται για να λάβετε το όνομα του πόρου που ζητήσατε. χαμένος) η συνάρτηση χρησιμοποιείται για να ελέγξει εάν το $ _SERVER [‘HTTPS’] είναι ένα σύνολο ή όχι, και αν έχει οριστεί, τότε ελέγξτε την τιμή του $ _SERVER [‘HTTPS’] είναι επί ή όχι. Στη συνέχεια, οι τιμές αυτών των τριών μεταβλητών συνδυάζονται με το '//:' για να ανακτήσετε το πλήρες URL της τρέχουσας σελίδας.




// Διαβάστε το όνομα τομέα της τρέχουσας σελίδας
$ domain = $ _SERVER['HTTP_HOST']?
// Διαβάστε τον πόρο που ζητήσατε
$ πόρος = $ _SERVER['REQUEST_URI']?
// Μάθετε το πρωτόκολλο του τρέχοντος url
αν( χαμένος ($ _SERVER['HTTPS']) && $ _SERVER['HTTPS'] === 'επί')
πρωτόκολλο $ = 'https'?
αλλού
πρωτόκολλο $ = 'http'?

// Συνδυάστε όλα τα μέρη για να λάβετε την πλήρη διεύθυνση URL
url $ = πρωτόκολλο $Το': //'Το$ domainΤο$ πόρος?
// Εκτυπώστε τη διεύθυνση URL της τρέχουσας σελίδας
πέταξε έξω '

Η διεύθυνση URL του τρέχοντος
η σελίδα είναι:

'
Το url $??>

Παραγωγή:





Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου από το διακομιστή. Η τιμή του $ _SERVER [‘HTTPS’] δεν είναι επί για τον τοπικό διακομιστή. Έτσι η έξοδος δείχνει το http πρωτόκολλο για την τρέχουσα διεύθυνση URL.



Παράδειγμα 2: Εμφάνιση της διεύθυνσης URL της τρέχουσας σελίδας χρησιμοποιώντας τριμερή τελεστή

Το ακόλουθο παράδειγμα δείχνει τον τρόπο λήψης της πλήρους διεύθυνσης URL της τρέχουσας σελίδας χρησιμοποιώντας τον τρίτο τελεστή. Δημιουργήστε ένα αρχείο PHP με το ακόλουθο σενάριο.

Αν η συνθήκη χρησιμοποιείται στο προηγούμενο παράδειγμα για να μάθετε ποιο πρωτόκολλο χρησιμοποιείται στη διεύθυνση URL της τρέχουσας σελίδας. Η ίδια εργασία γίνεται με τη χρήση του τριμερούς τελεστή σε αυτό το σενάριο. χαμένος) η συνάρτηση χρησιμοποιείται για να ελέγξει εάν το $ _SERVER [‘HTTPS’] είναι ένα σύνολο ή όχι και αν η τιμή του $ _SERVER [‘HTTPS’] είναι επί, τότε ο τριμερής χειριστής θα επιστρέψει το HTTPS, διαφορετικά θα επιστρέψει το HTTP. Τα άλλα μέρη της διεύθυνσης URL ανακτώνται και εκτυπώνονται όπως το προηγούμενο παράδειγμα.


// Μάθετε το πρωτόκολλο του τρέχοντος url
πρωτόκολλο $ = ( χαμένος ($ _SERVER['HTTPS']) && $ _SERVER['HTTPS']
== 'επί';'https' : 'http')?
// Διαβάστε το όνομα τομέα της τρέχουσας σελίδας
$ domain = $ _SERVER['HTTP_HOST']?
// Διαβάστε τον πόρο που ζητήσατε
$ πόρος = $ _SERVER['REQUEST_URI']?
// Συνδυάστε όλα τα μέρη για να λάβετε την πλήρη διεύθυνση URL
url $ = πρωτόκολλο $Το': //'Το$ domainΤο$ πόρος?
// Εκτυπώστε τη διεύθυνση URL της τρέχουσας σελίδας
πέταξε έξω '

Η διεύθυνση URL της τρέχουσας σελίδας είναι:

'
Το url $?
?>

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου από το διακομιστή. Η τιμή του $ _SERVER [‘HTTPS’] δεν είναι επί για τον τοπικό διακομιστή. Έτσι, η έξοδος εμφανίζει το πρωτόκολλο HTTP για την τρέχουσα διεύθυνση URL.

Παράδειγμα 3: Εμφάνιση της διεύθυνσης URL της τρέχουσας σελίδας με βάση τον αριθμό θύρας

Στα δύο προηγούμενα παραδείγματα, η τιμή του $ _SERVER [‘HTTPS’] χρησιμοποιείται για να μάθετε το πρωτόκολλο της τρέχουσας διεύθυνσης URL της σελίδας και δεν χρησιμοποιείται συμβολοσειρά ερωτήματος με τη διεύθυνση URL. Το ακόλουθο παράδειγμα δείχνει πώς μπορεί να χρησιμοποιηθεί η μεταβλητή $ _SERVER [‘SERVER_PORT’] για να μάθετε το πρωτόκολλο και να ανακτήσετε την πλήρη διεύθυνση URL με τη συμβολοσειρά ερωτήματος. Δημιουργήστε ένα αρχείο PHP με το ακόλουθο σενάριο.

Εδώ, χρησιμοποιούνται πολλαπλές λογικές συνθήκες και τριμερής τελεστής για να μάθετε το πρωτόκολλο. Εάν η τιμή του $ _SERVER [‘HTTPS’] είναι κενή ή έχει οριστεί σε μακριά από, τότε θα ελέγξει την τιμή του $ _SERVER [‘SERVER_PORT’] για να μάθει το πρωτόκολλο της τρέχουσας διεύθυνσης URL. Η μεταβλητή $ _SERVER [‘QUERY_STRING’] χρησιμοποιείται για την ανάκτηση της τιμής συμβολοσειράς ερωτήματος από τη διεύθυνση URL.


// Μάθετε το πρωτόκολλο του τρέχοντος url
πρωτόκολλο $ = ((! αδειάζω ($ _SERVER['HTTPS']) && $ _SERVER['HTTPS']
! = = 'μακριά από') || $ _SERVER['SERVER_PORT'] == 443);'https: //' : 'http: //'?
// Διαβάστε το όνομα τομέα της τρέχουσας σελίδας
$ domain = $ _SERVER['HTTP_HOST']?
// Διαβάστε τον πόρο που ζητήσατε
$ πόρος = $ _SERVER['REQUEST_URI']?
// Διαβάστε την τιμή συμβολοσειράς ερωτήματος
$ query = $ _SERVER['QUERY_STRING']?
// Συνδυάστε όλα τα μέρη για να λάβετε την πλήρη διεύθυνση URL
url $ = πρωτόκολλο $Το$ domainΤο$ πόρος?
// Εκτυπώστε τη διεύθυνση URL της τρέχουσας σελίδας
πέταξε έξω '

Η πλήρης διεύθυνση URL της τρέχουσας σελίδας είναι:

'
Το url $?
// Εκτύπωση του τμήματος συμβολοσειράς ερωτήματος
πέταξε έξω '

Η συμβολοσειρά ερωτήματος είναι:

'
Το $ query?
?>

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω σεναρίου από το διακομιστή χωρίς καμία συμβολοσειρά ερωτήματος. Δεν παρέχεται συμβολοσειρά ερωτήματος στη διεύθυνση URL. Έτσι, η έξοδος εμφανίζει την κενή συμβολοσειρά ερωτήματος.

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω σεναρίου από το διακομιστή με τη συμβολοσειρά ερωτήματος. Η ακόλουθη έξοδος εμφανίζει τη διεύθυνση URL με τη συμβολοσειρά ερωτήματος και τη συμβολοσειρά ερωτήματος ξεχωριστά.

συμπέρασμα

Διαφορετικοί τρόποι ανάκτησης του πλήρους URL της τρέχουσας σελίδας εμφανίζονται σε αυτό το σεμινάριο χρησιμοποιώντας διάφορα παραδείγματα. Ο τρόπος διαχωρισμού της διεύθυνσης URL και της συμβολοσειράς ερωτήματος εμφανίζεται επίσης σε αυτό το σεμινάριο. Ας ελπίσουμε ότι αυτό το σεμινάριο θα βοηθήσει τους αναγνώστες να γνωρίζουν τον τρόπο ανάγνωσης του πλήρους URL της τρέχουσας σελίδας χρησιμοποιώντας το σενάριο PHP.