Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

Bad φίλτρα του Word στην PHP

PHP είναι μια scripting γλώσσα που σας βοηθά να επεξεργάζονται εισόδου και εξόδου δημιουργούν HTML για χρήστες , οπότε είναι λογικό να το χρησιμοποιήσετε για να δημιουργήσετε μια «κακή λέξη" φίλτρο . Η διαδικασία δημιουργίας ενός « κακή λέξη " φίλτρο στην PHP είναι αρκετά απλή . Μπορείτε να δημιουργήσετε μια λίστα με « κακή λέξη » , διαχωρίζει το περιεχόμενο που πρέπει να φιλτράρεται σε λέξεις , συγκρίνουμε κάθε λέξη από τη λίστα και να αφαιρέσετε ή υποκατάστατο κάτι άλλο για κάθε αγώνα . Το πιο δύσκολο κομμάτι της δημιουργίας ενός « κακή λέξη " φίλτρο PHP είναι να επιλέξετε τη σωστή δομή των δεδομένων και τον αλγόριθμο έτσι ώστε ο κωδικός σας τρέχει όσο πιο γρήγορα και αποτελεσματικά όσο το δυνατόν . Δημιουργία Bad λίστας λέξεων
Η

Δημιουργήστε μια λίστα " κακή λέξη " που περιλαμβάνει όλες τις λέξεις που δεν θέλετε να εμφανίζονται στην οθόνη . Πληκτρολογήστε κάθε λέξη σε ένα αρχείο δεδομένων , μια λέξη ανά γραμμή . Αποφασίστε τι θέλετε να υποκαταστήσει κάθε κακή λέξη ? Για παράδειγμα " ***** " ή " " ή " . -------- " Τοποθετήστε το υποκατάσταση σε μια μεταβλητή που θα χρησιμοποιηθεί αργότερα, όταν το φιλτράρισμα κακές λέξεις . Για παράδειγμα :

Εικόνων Κατάστημα κακή λέξη τον κατάλογο σε έναν πίνακα
Η

Διαβάστε το " κακή λέξη " λίστα από το δίσκο και να το αποθηκεύσετε σε μια δομή δεδομένων . Θα μπορούσε να εξετάσει τη δημιουργία ενός πίνακα και την αποθήκευση κάθε « κακή λέξη » ως στοιχείο του πίνακα , όπως :

$ bad_word [ 0 ] = " thisbadword " ? $ Bad_word [ 1 ] = " thatbadword " ? ?

Ενώ αυτό το είδος της δομή θα λειτουργήσει , είναι αναποτελεσματική , γιατί θα πρέπει να αναζητήσετε έναν ολόκληρο πίνακα " κακές λέξεις " για κάθε λέξη που ελέγχει έναντι της λίστας. Για μια πιο εφικτό τρόπο για την εκπλήρωση αυτού του καθήκοντος , να δημιουργήσετε ένα πίνακα κατακερματισμού . Σχεδιάστε ένα associative array και να αποθηκεύουν κάθε " κακή λέξη " ως βασικού πίνακα. Εκχώρηση τίποτα ως αξία , όπως " 1 " ή " αλήθεια ". Για να καθοριστεί εάν μια λέξη είναι στη λίστα , θα πρέπει απλώς να αναφέρετε το βασικό πίνακα, αντί για αναζήτηση σε ολόκληρο το φάσμα . Για παράδειγμα :

$ bad_words = array ( ) ? $ Fp = fopen ( " badwordsfile.txt " , " r" ) ή να πεθάνουν ( " ! Δεν θα μπορούσε να ανοίξει το αρχείο με τις κακές λέξεις ")? Ενώ ( $ λέξη = fgets ( $ fp ) ) { $ bad_words [ $ λέξη ] = 1 ? }

Η Αποκτήστε το περιεχόμενο προς το φίλτρο
Η

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

$ to_do = file_get_contents ( " http://badmusiclyricswithprofanity.com ")?
Εικόνων Απόσπασμα λέξεις από το περιεχόμενο
Η

Break η αφιλτράριστη περιεχόμενο σε λέξεις με τον διαχωρισμό των λέξεων στους χώρους που τους χωρίζουν . Χρησιμοποιήστε τη λειτουργία PHP " εκραγεί " για να μετατρέψετε το αφιλτράριστο string σε μια σειρά από λέξεις που μπορούν να φιλτράρουν ξεχωριστά . Για παράδειγμα :

$ words_to_filter = εκραγεί ( " " , $ to_do ) ?
Εικόνων Φίλτρο Bad Words
Η

επαναλήψεις στη σειρά των λέξεων και να ελέγχει κάθε λέξη κατά του πίνακα που περιέχει την " κακή λέξη " λίστα . Εάν έχετε ελέγξει τον πίνακα με την εξέταση για να δούμε αν η τιμή του πίνακα είναι ένα, θα δημιουργήσει ένα λάθος κάθε φορά που προσπαθείτε να αποκτήσετε πρόσβαση σε μια λέξη που δεν υπάρχει στη λίστα , επειδή ο δείκτης array δεν υπάρχει . Αντ 'αυτού , χρησιμοποιήστε τη λειτουργία " isset " για να καθορίσει εάν η λέξη είναι στον πίνακα . Αν υπάρχει ένας αγώνας , να αντικαταστήσετε τη λέξη με την επιλεγμένη αντικατάσταση . Για παράδειγμα :

foreach ( $ words_to_filter από $ λέξη = > $ σήμα) { εάν ( isset ( bad_words $ [ $ λέξη ] ) ) { $ λέξη = $ υποκατάστατο ? } }
Η
Συναρμολογήστε ξανά το κείμενο
Η

Βάλτε το κείμενο πίσω σε μια ενιαία μεταβλητή με το " implode " λειτουργία - το αντίθετο της «εκραγεί ». παίρνει κάθε τιμή πίνακα και να ενταχθούν σε αυτήν με χαρακτήρες που έχετε ορίσει ? στην περίπτωσή μας , είναι ένας χώρος . Echo τα αποτελέσματα των φιλτράρεται περιεχομένου στην οθόνη . Για παράδειγμα :

$ φιλτράρεται = implode ( " " , $ words_to_filter ) ? Echo $ φιλτράρεται ? >
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα