Php περικοπή κενού διαστήματος γύρω από τις άκρες. Πώς να αφαιρέσετε κενά από συμβολοσειρές στην PHP; Παράδειγμα εύρεσης και αντικατάστασης χώρων

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

Τακτοποίηση()

Η συνάρτηση Trim αναζητά επιπλέον χαρακτήρες στην αρχή ή στο τέλος μιας συμβολοσειράς. Αυτό:

  • κανονικός χώρος?
  • κατάταξη εις πίνακα;
  • χαρακτήρας αλλαγής γραμμής.

Είναι γραμμένο με αυτή τη μορφή:

Περικοπή συμβολοσειράς (string $str [, string $character_mask = "\t\n\r\0\x0B" ])

Το $str είναι η συμβολοσειρά που υποβάλλεται σε επεξεργασία και το $character_mask είναι οι επιπλέον χαρακτήρες. Το $character_mask είναι ένα προαιρετικό χαρακτηριστικό.

Preg_replace

Μια λειτουργία για την αναζήτηση και την αντικατάσταση χαρακτήρων χρησιμοποιώντας μια τυπική έκφραση.

Μικτό preg_replace (μικτό $pattern , μικτή $replacement , μικτή $subject [, int $limit = -1 [, int &$count ]])

  1. $pattern - το μοτίβο που αναζητάτε.
  2. $replacement - χαρακτήρες προς αντικατάσταση.
  3. $subject - το αντικείμενο που υποβάλλεται σε επεξεργασία.
  4. $limit - αριθμός αντικαταστάσεων που έγιναν.

Το $pattern και το $replacement μπορούν να είναι πίνακες. Σε αυτή την περίπτωση, η αντικατάσταση γίνεται σύμφωνα με τα ευρετήρια.

Str_replace()

Μπορείτε να αφαιρέσετε κενά από μια συμβολοσειρά στην PHP χρησιμοποιώντας τη μέθοδο str_replace(). Αντικαθιστά όλες τις εμφανίσεις της συμβολοσειράς αναζήτησης με τη συμβολοσειρά αντικατάστασης.

Μικτή str_replace (μικτή $search , μικτή $replace , μικτή $subject [, int &$count ])

Χρησιμοποιείται ως απλοποιημένη μέθοδος preg_replace().

  1. $search - η τιμή που πρέπει να βρεθεί.
  2. $replace - η συμβολοσειρά που θα αντικατασταθεί.
  3. $subject - το αντικείμενο στο οποίο εκτελείται η αναζήτηση και η αντικατάσταση.
  4. Το $count ορίζει τον αριθμό των αντικαταστάσεων.
$bodytag = str_replace("%body%", "μαύρο", " "); // εκχωρεί: Hll Wrld f PHP $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O ", "U"); $onlyconsonants = str_replace($vowels, "", "Hello World of PHP"); // αναθέτει: Θα πρέπει να τρώτε πίτσα, μπύρα και παγωτό κάθε μέρα $phrase = "Θα πρέπει να τρώτε φρούτα , λαχανικά και φυτικές ίνες κάθε μέρα."; $healthy = array("φρούτα", "λαχανικά", "ίνες"); $yummy = array("πίτσα", "μπύρα", "παγωτό"); $ newphrase = str_replace($healthy, $yummy, $phrase); // εκχωρεί: 2 $str = str_replace("ll", "", "καλό golly miss molly!", $count); echo $count; ?>

Παράδειγμα εύρεσης και αντικατάστασης χώρων

Αυτές οι λειτουργίες ισχύουν στις περισσότερες περιπτώσεις, ακόμη και σε πιο σύνθετες.

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

$text1 = "Μεγάλο κείμενο με επιπλέον κενά";

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

1. Πρώτα πρέπει να μετατρέψετε μια συμβολοσειρά σε μια σειρά από συμβολοσειρές χρησιμοποιώντας μια συνάρτηση.

Explode(“ ”, $text1)​

Ένας ενιαίος χώρος χρησιμοποιείται ως οριοθέτης. Με αυτόν τον τρόπο, τα μέρη του σώματος που δεν είναι ξεχωριστά στοιχεία του πίνακα θα περιέχουν ένα χώρο λιγότερο.

2. Το αποτέλεσμα είναι μια σειρά από συμβολοσειρές όπως αυτή:

$array = ["Μακρά", "ογκώδη", "κείμενο", "με", "επιπλέον κενά"]​

3. Κάθε στοιχείο υποβάλλεται σε επεξεργασία από μια συνάρτηση:

Preg_replace("/\s+/", " ", $text1)​

Για να αναζητήσετε ένα ή περισσότερα κενά, χρησιμοποιήστε την κανονική έκφραση /\s+/. Όλες οι αντιστοιχίσεις που βρέθηκαν αντικαθίστανται με τη συμβολοσειρά " ". Η αναζήτηση πραγματοποιείται στη μεταβλητή $text1.

4. Ως αποτέλεσμα, παίρνουμε μια συμβολοσειρά με τον σωστό αριθμό διαστημάτων, η οποία γίνεται εύκολα αντιληπτή από τον χρήστη.

Καλησπέρα, πρόσφατα θίξαμε λίγο το θέμα των κωδικών πρόσβασης και την ασφαλή αποθήκευση τους, δηλαδή, μελετήσαμε τη λειτουργία κατακερματισμού. Σήμερα θα συνεχίσουμε λίγο το θέμα των κωδικών πρόσβασης και την αποθήκευσή τους και θα μελετήσουμε τις λειτουργίες με τις οποίες μπορείτε αφαιρέστε κενά από την αρχή και το τέλος μιας συμβολοσειράς. Και εδώ είναι οι κωδικοί πρόσβασης και αφαιρώντας κενά από μια συμβολοσειρά, εσύ πες μου? Πρώτον, αυτή η λειτουργία, φυσικά, δεν σχετίζεται ειδικά με κωδικούς πρόσβασης, αλλά λειτουργεί μόνο με συμβολοσειρές, και είπα για τους κωδικούς πρόσβασης μόνο ως εφαρμογή της. Επομένως, μπορείτε να το χρησιμοποιήσετε όπου και όποτε θέλετε, ανάλογα με την κατάστασή σας.

Σε τι χρησιμεύει; περικόψτε τα κενά στην αρχή και το τέλος της γραμμής? Εάν καθορίσετε έναν κωδικό πρόσβασης στον ιστότοπο κατά την εγγραφή και πατήσετε κατά λάθος το πλήκτρο διαστήματος και δεν το παρατηρήσετε, τότε ο κωδικός πρόσβασής σας θα αποτελείται, για παράδειγμα, όχι από τέσσερις χαρακτήρες, αλλά από πέντε, συμπεριλαμβανομένου του διαστήματος. Και δεν θα καταλάβετε γιατί ο κωδικός πρόσβασης δεν είναι κατάλληλος, επειδή ο κατακερματισμός αυτής της συμβολοσειράς θα είναι διαφορετικός. Ως εκ τούτου, προτείνω πάντα να κόβετε κενά σε μια γραμμή για να αποφύγετε τέτοιες αποχρώσεις. Τώρα θα προχωρήσουμε εξετάζοντας ένα παράδειγμα στην πράξη.

$string_pass = " 1234 " ;
$password = md5(trim($string_pass ));
$password2 = md5($string_pass );
ηχώ $password;
ηχώ "
"
;
ηχώ $password2;
?>

Δημιουργούμε μια μεταβλητή που θα είναι ο κωδικός μας, και συγκεκριμένα υποδεικνύουμε ένα κενό στην αρχή και στο τέλος της γραμμής. Στη συνέχεια, δημιουργούμε μια μεταβλητή στην οποία θα είναι ήδη αποθηκευμένος ο κατακερματισμένος κωδικός πρόσβασης και περνάμε τη γραμμή λειτουργία περικοπής, το οποίο πρώτα θα αφαιρέσει όλα τα περιττά κενά και μόνο τότε θα λάβουμε τον κατακερματισμένο κωδικό πρόσβασης. Και στη δεύτερη μεταβλητή δεν χρησιμοποιούμε τη συνάρτηση για να αφαιρέσουμε κενά και να κατακερματίσουμε αμέσως τη συμβολοσειρά. Στη συνέχεια, εμφανίζουμε τα δύο αποτελέσματα στην οθόνη του προγράμματος περιήγησης και βλέπουμε ότι είναι εντελώς διαφορετικά, παρόλο που χρησιμοποιήσαμε την ίδια συμβολοσειρά και τις δύο φορές. Ωστόσο, λόγω των χώρων, το αποτέλεσμα είναι εντελώς διαφορετικό, οπότε πρέπει να είστε εξαιρετικά προσεκτικοί με αυτό το θέμα. Και κάτι τελευταίο πρέπει να σου πω. Υπάρχουν δύο ακόμη συναρτήσεις που αφαιρούν κενά στην αρχή μιας γραμμής ή στο τέλος μιας γραμμής και ονομάζονται ltrimΚαι rtrimαντίστοιχα. Επομένως, εάν πρέπει να αφαιρέσετε κενά από οποιαδήποτε από τις πλευρές, χρησιμοποιήστε τα. Και με αυτό ολοκληρώνω αυτό το άρθρο και σας εύχομαι επιτυχία σε όλη σας τη δουλειά.

Σε οποιαδήποτε γλώσσα, όταν εργάζεστε με συμβολοσειρές, μια τυπική εργασία είναι να αφαιρέσετε κενά τόσο στην αρχή όσο και στο τέλος της γραμμής. Στην PHP υπάρχουν τρεις συναρτήσεις για αυτούς τους σκοπούς: ltrim(), rtrim(), trim(). Η συνάρτηση ltrim() αφαιρεί κενά στην αρχή μιας γραμμής, rtrim() - στο τέλος μιας γραμμής, trim() - τόσο στην αρχή όσο και στο τέλος. Αυτό που είναι ενδιαφέρον είναι ότι αυτές οι συναρτήσεις, εκτός από τα κενά, αφαιρούν επίσης τη νέα γραμμή, την επιστροφή μεταφοράς, την καρτέλα και τις ακολουθίες διαφυγής μηδενικών χαρακτήρων.

$example = "\tΓεια σε όλους\n"; var_dump(trim($example)); var_dump(rtrim($example)); var_dump(ltrim($example));

Ως αποτέλεσμα παίρνουμε:

Συμβολοσειρά "Γεια σε όλους" (μήκος=12) συμβολοσειρά "Γεια σε όλους" (μήκος=14) Συμβολοσειρά "Γεια σε όλους" (μήκος=13)

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

$example = "Γεια σε όλους\n"; var_dump(trim($example, " y")); var_dump(rtrim($example, " y\n")); var_dump(ltrim($example, "yH"));

Σαν άποτέλεσμα:

Συμβολοσειρά "Γεια σε όλους" (μήκος=13) συμβολοσειρά " yΓεια σε όλους" (μήκος=13) συμβολοσειρά "i όλους" (μήκος=12)