⊗ppPmRgSP 248 of 447 menu

Θήκες κατά την αναζήτηση με κανονικές εκφράσεις στην PHP

Ας υποθέσουμε ότι έχουμε μια συγκεκριμένη συμβολοσειρά που περιέχει ένα domain:

<?php $str = 'eee site.ru bbb'; ?>

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

Οι θήκες αντιπροσωπεύουν στοιχεία ενός πίνακα, στα οποία μπορούν να τοποθετηθούν μέρη που βρέθηκαν από την κανονική έκφραση. Στη δική μας περίπτωση, στην πρώτη θήκη μπορούμε να τοποθετήσουμε το όνομα του domain, και στη δεύτερη - τη ζώνη του.

Ας το κάνουμε. Αρχικά, ας γράψουμε την κανονική έκφραση που βρίσκει το domain στη συμβολοσειρά:

<?php $reg = '#[a-z0-9_-]+\.[a-z]{2,}#'; ?>

Ας ορίσουμε τώρα στην κανονική μας έκφραση ποια μέρη πρέπει να πάνε σε ποια θήκη. Αυτό γίνεται με τη χρήση στρογγυλών παρενθέσεων. Ας ξεχωρίσουμε με αυτές το μέρος της κανονικής έκφρασης που αναζητά το όνομα του domain, και το μέρος που αναζητά τη domain ζώνη:

<?php $reg = '#([a-z0-9_-]+)\.([a-z]{2,})#'; ?>

Τώρα στη συνάρτηση preg_match ως τρίτη παράμετρο θα ορίσουμε μια μεταβλητή (οποιοδήποτε όνομα):

<?php preg_match($reg, $str, $res); ?>

Στην καθορισμένη μεταβλητή θα πέσει ένας πίνακας με τις θήκες που βρέθηκαν. Σε αυτήν την περίπτωση, στο μηδενικό στοιχείο του πίνακα θα βρίσκεται η συμβολοσειρά που βρέθηκε, στο πρώτο στοιχείο - η πρώτη θήκη, στο δεύτερο στοιχείο - η δεύτερη θήκη και ούτω καθεξής:

<?php preg_match($reg, $str, $res); var_dump($res); // θα εκτυπώσει ['site.ru', 'site', 'ru'] ?>

Δίνεται μια συμβολοσειρά με ημερομηνία:

<?php $str = '2025-12-31'; ?>

Τοποθετήστε το έτος, το μήνα και την ημέρα σε ξεχωριστές θήκες.

Δίνεται μια συμβολοσειρά με όνομα αρχείου:

<?php $str = 'index.html'; ?>

Τοποθετήστε το όνομα του αρχείου και την επέκτασή του σε ξεχωριστές θήκες.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη