Χρήση της συνάρτησης preg_match () στη PHP

Use Preg_match Function Php



Η κανονική έκφραση είναι ένα συγκεκριμένο μοτίβο που μπορεί να χρησιμοποιηθεί για αντιστοίχιση, αναζήτηση και αντικατάσταση οποιασδήποτε συγκεκριμένης συμβολοσειράς στα δεδομένα κειμένου. Είναι ένα ισχυρό χαρακτηριστικό κάθε γλώσσας προγραμματισμού. Χρησιμοποιείται κυρίως για την εκτέλεση διαφορετικών τύπων επικύρωσης φόρμας, όπως επικύρωση ηλεκτρονικού ταχυδρομείου, έλεγχος μορφής τηλεφώνου, επικύρωση πεδίων ονόματος χρήστη και κωδικού πρόσβασης στη φόρμα σύνδεσης κλπ. Κάθε συγκεκριμένο περιεχόμενο του κειμένου μπορεί να αναζητηθεί και να αντικατασταθεί χρησιμοποιώντας μια κανονική έκφραση πρότυπο. Ονομάζεται επίσης regex ή RegExp. Διαφορετικοί τύποι συμβόλων χρησιμοποιούνται για τον καθορισμό του μοτίβου regex.

Πολλές ενσωματωμένες συναρτήσεις υπάρχουν στην PHP για την κανονική έκφραση. Η συνάρτηση preg_match () είναι μία από αυτές. Αυτή η συνάρτηση χρησιμοποιείται για την αντιστοίχιση ενός συγκεκριμένου μοτίβου σε δεδομένα συμβολοσειράς. Το πώς μπορεί να χρησιμοποιηθεί η συνάρτηση preg_match () στην PHP για την εκτέλεση διαφόρων εργασιών εξηγείται σε αυτό το σεμινάριο.







Σύνταξη:

Int ήψευδής preg_match (σειράμοτίβο $,σειρά$ θέμα [, πίνακας &$ ταιριάζει = μηδενικό [,int$ σημαίες = 0 [,intαντιστάθμιση $ = 0]]])

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



Παράδειγμα 1: Αντιστοιχίστε το μοτίβο κατά τρόπο κεφαλαίο και χωρίς διάκριση πεζών-κεφαλαίων

Το ακόλουθο παράδειγμα δείχνει τη χρήση της συνάρτησης preg_match () για την αντιστοίχιση της συμβολοσειράς κατά τρόπο κεφαλαίο και χωρίς διάκριση πεζών-κεφαλαίων. Δημιουργήστε ένα αρχείο PHP με το ακόλουθο σενάριο.



Εδώ, χρησιμοποιούνται τρία πρότυπα για εφαρμογή σε τρεις συναρτήσεις preg_match (). Το πρώτο μοτίβο, '/Σαν/', χρησιμοποιείται για την αντιστοίχιση της συμβολοσειράς με τρόπο ευαίσθητο σε πεζά. Το δεύτερο μοτίβο, '/σαν/' , χρησιμοποιείται για την αντιστοίχιση της συμβολοσειράς με διάκριση πεζών-κεφαλαίων. Το τρίτο μοτίβο, 'Οπως εγώ' , χρησιμοποιείται για την αντιστοίχιση της συμβολοσειράς με τρόπο χωρίς διάκριση πεζών-κεφαλαίων. search_pattern () η συνάρτηση ορίζεται στο σενάριο για τη χρήση της συνάρτησης preg_match () για αντιστοίχιση και εκτυπώνει το μήνυμα με βάση την επιστρεφόμενη τιμή αυτής της συνάρτησης.







// Ορίστε το κείμενο

$ κείμενο = «Μου αρέσει η PHP. Μου αρέσει επίσης η JavaScript. '?

// Ορίστε τρεις τύπους μοτίβου

$ pattern1 = '/Σαν/'?

$ pattern2 = '/σαν/'?

$ pattern3 = '/Οπως εγώ'?

// Ορισμός συνάρτησης για την αναζήτηση του μοτίβου στο κείμενο

λειτουργίαsearch_pattern(μοτίβο $, $ string)

{

αν( preg_match (μοτίβο $, $ string))

πέταξε έξω 'Αποτέλεσμα αναζήτησης: Βρέθηκε αντιστοίχιση για το μοτίβο -μοτίβο $
'
?

αλλού

πέταξε έξω 'Αποτέλεσμα αναζήτησης: Δεν βρέθηκε αντιστοίχιση για το μοτίβο -μοτίβο $
'
?

}

// Εκτυπώστε το αρχικό κείμενο

πέταξε έξω «Το αρχικό κείμενο είναι: $ κείμενο
'
?

// Καλέστε τη συνάρτηση τρεις φορές για τρία μοτίβα

search_pattern($ pattern1, $ κείμενο)?

search_pattern($ pattern2, $ κείμενο)?

search_pattern($ pattern3, $ κείμενο)?

?>

Παραγωγή :

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



Παράδειγμα 2: Επικυρώστε τη διεύθυνση URL

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

Εκχωρείται μια τιμή URL στη μεταβλητή $ url για έλεγχο. Η συμβολοσειρά ‘@^(?: Https: //)? ([^/]+) @I’ χρησιμοποιείται ως πρότυπο στη λειτουργία preg_match () για να ελέγξει εάν η διεύθυνση URL είναι έγκυρη ή όχι. Εάν είναι έγκυρο, τότε θα εκτυπωθεί το όνομα κεντρικού υπολογιστή και το όνομα τομέα, διαφορετικά θα εκτυπωθεί το μήνυμα σφάλματος.



// Ορίστε τη διεύθυνση URL

url $ = 'https://www.linuxhint.com'?

// Ορίστε το μοτίβο για την επικύρωση της διεύθυνσης URL

μοτίβο $ ='@^(?: https: //)? ([^/]+) @i'?

// Ελέγξτε ότι η διεύθυνση URL είναι έγκυρη ή όχι

αν( preg_match (μοτίβο $, url $, $ ταιριάζει 1))

{

// Εκτυπώστε το μήνυμα επιτυχίας

πέταξε έξω 'Το URL είναι έγκυρο.
'
?

// Εκτυπώστε τον πίνακα που περιέχει τις τιμές αντιστοίχισης

πέταξε έξω 'Οι τιμές του πίνακα είναι:'?

print_r ($ ταιριάζει 1)?

// Ανάκτηση και εκτύπωση της τιμής κεντρικού υπολογιστή

$ host = $ ταιριάζει 1[1]?

πέταξε έξω '
Το όνομα του κεντρικού υπολογιστή είναι:$ host'
?

// Αναζήτηση στο όνομα τομέα από την τιμή του κεντρικού υπολογιστή

preg_match ('/^^.-lex.europa.eu+=., $ host, $ ταιριάζει2)?

πέταξε έξω '
Το όνομα τομέα είναι:{$ matches2 [0]}'
?

}

αλλού

{

// Εκτυπώστε το μήνυμα σφάλματος

πέταξε έξω 'Μη έγκυρη διεύθυνση URL.'?

}

?>

Παραγωγή :

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

Παράδειγμα 3: Μοτίβο αναζήτησης με τιμές σημαίας και μετατόπισης

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

Τρία μοτίβα χρησιμοποιούνται στο σενάριο για τρεις τύπους αντιστοίχισης. Στην πρώτη συνάρτηση preg_match (), το ‘/(bangla) (desh)/’ χρησιμοποιείται ως μοτίβο και ως τιμή σημαίας, χρησιμοποιείται PREG_OFFSET_CAPTURE. Οι αξίες του $ ταιριάζει η μεταβλητή θα εκτυπωθεί με βάση την έξοδο της πρώτης συνάρτησης preg_match (). Στη δεύτερη συνάρτηση preg_match (), ‘/(bangla) (χαρούμενος)*(desh)/i’, χρησιμοποιείται ως μοτίβο και ως τιμή σημαίας, χρησιμοποιείται PREG_UNMATCHED_AS_NULL. Εάν οποιοδήποτε μέρος του μοτίβου δεν ταιριάζει, τότε μια τιμή NULL θα αποθηκευτεί στον πίνακα. Οι αξίες του $ ταιριάζει η μεταβλητή θα εκτυπωθεί με βάση την έξοδο της δεύτερης συνάρτησης preg_match (). Στην τρίτη συνάρτηση preg_match (), το ‘/glad/’ χρησιμοποιείται ως μοτίβο, η τιμή σημαίας, χρησιμοποιείται PREG_OFFSET_CAPTURE και 3 χρησιμοποιείται ως τιμή μετατόπισης. Οι αξίες του $ ταιριάζει η μεταβλητή θα εκτυπωθεί με βάση την έξοδο της τρίτης συνάρτησης preg_match ().



// Ορίστε την τιμή κειμένου

$ κείμενο = «Μπαγκλαντές»?

// Ορίστε τρία είδη μοτίβων

$ pattern1 = ' / (bangla) (desh) / i'?

$ pattern2 = ' / (bangla) (χαρούμενος) * (desh) / i'?

$ pattern3 = '/χαρούμενος/'?


// Χρήση σημαίας PREG_OFFSET_CAPTURE

preg_match ($ pattern1, $ κείμενο, $ ταιριάζει,PREG_OFFSET_CAPTURE)?

πέταξε έξω '
';  

print_r ($matches);

echo '

'
?

// Χρήση σημαίας PREG_UNMATCHED_AS_NULL

preg_match ($ pattern2, $ κείμενο, $ ταιριάζει,PREG_UNMATCHED_AS_NULL)?

πέταξε έξω '
';  

print_r ($matches);

echo '

'
?

// Χρήση PREG_OFFSET_CAPTURE σημαίας και τιμής μετατόπισης

preg_match ($ pattern3, $ κείμενο, $ ταιριάζει,PREG_OFFSET_CAPTURE, 3)?

πέταξε έξω '
';  

print_r ($matches);

echo '
'
?

?>

Παραγωγή :

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

συμπέρασμα

Οι χρήσεις της συνάρτησης preg_match () εξηγήθηκαν σε αυτό το σεμινάριο χρησιμοποιώντας πολλά παραδείγματα. Οι χρήσεις διαφορετικών επιχειρημάτων αυτής της συνάρτησης έχουν επίσης δειχθεί εδώ. Οι αναγνώστες θα μπορούν να χρησιμοποιήσουν σωστά αυτήν τη λειτουργία στο σενάριό τους αφού διαβάσουν αυτό το σεμινάριο.