Ob_start - Ενεργοποίηση προσωρινής αποθήκευσης εξόδου. Χρήση ob_start κατά την υποστήριξη έργων php Κακή αναζήτηση έναρξης php

Εναρξη αναζήτησηςείναι ένας αεροπειρατής προγράμματος περιήγησης, ο οποίος προωθείται μέσω άλλων δωρεάν λήψεων και μόλις εγκατασταθεί θα αλλάξει την αρχική σελίδα του προγράμματος περιήγησής σας σε start-search.com search.yahoo.com.

Η αρχική σελίδα start-search.com θα εμφανίζει διαφημίσεις και συνδέσμους χορηγίας στα αποτελέσματα αναζήτησής σας και ενδέχεται να συλλέγει όρους αναζήτησης από τα ερωτήματα αναζήτησής σας. Η πειρατεία του start-search.com χρησιμοποιείται για την ενίσχυση των διαφημιστικών εσόδων, όπως στη χρήση του blackhat SEO, για τη διόγκωση της κατάταξης σελίδων ενός ιστότοπου στα αποτελέσματα αναζήτησης.

Ξεκινήστε την Αναζήτηση τεχνικά δεν είναι ιός, αλλά εμφανίζει πολλά κακόβουλα χαρακτηριστικά, όπως δυνατότητες του rootkit για βαθιά σύνδεση στο λειτουργικό σύστημα, παραβίαση προγράμματος περιήγησης και γενικά απλώς παρεμβολή στην εμπειρία χρήστη. Η βιομηχανία αναφέρεται γενικά σε αυτό ως "PUP" ή δυνητικά ανεπιθύμητο πρόγραμμα.
Το Start Search είναι μια προσθήκη που υποστηρίζεται από διαφημίσεις (οι χρήστες μπορούν να δουν πρόσθετες διαφημίσεις banner, αναζήτησης, αναδυόμενων παραθύρων, pop-under, παρενθετικών διαφημίσεων και συνδέσμων εντός κειμένου) προσθήκη για τον Internet Explorer (BHO) και τον Firefox/Chrome (πρόσθετο) και διανέμονται μέσω διαφόρων πλατφορμών δημιουργίας εσόδων κατά την εγκατάσταση. Η επέκταση του προγράμματος περιήγησης περιλαμβάνει διάφορες λειτουργίες που θα τροποποιήσουν τις προεπιλεγμένες ή προσαρμοσμένες ρυθμίσεις του προγράμματος περιήγησης, συμπεριλαμβανομένης της αρχικής σελίδας, των ρυθμίσεων αναζήτησης και σε ορισμένες περιπτώσεις θα τροποποιήσουν το χρονικό όριο φόρτωσης του Internet Explorer, θα τοποθετήσουν ένα αρχείο κλειδώματος στον Firefox για να εμποδίσουν το ανταγωνιστικό λογισμικό να αλλάξει τις ρυθμίσεις του καθώς και να απενεργοποιήσετε την Πολιτική Ασφάλειας Περιεχομένου του προγράμματος περιήγησης για να επιτρέψετε τη δέσμη ενεργειών μεταξύ τοποθεσιών της προσθήκης.

Η αρχική σελίδα "Έναρξη αναζήτησης" μπήκε στον υπολογιστή σας αφού εγκαταστήσετε ένα δωρεάν λογισμικό (εγγραφή/μεταδοση βίντεο, διαχειριστές λήψεων ή δημιουργοί PDF) που είχε συμπεριλάβει στην εγκατάστασή τους αυτόν τον αεροπειρατή του προγράμματος περιήγησης.
Για παράδειγμα, όταν εγκαθιστάτε το VPlay, θα συμφωνήσετε επίσης να αλλάξετε την αρχική σελίδα του προγράμματος περιήγησής σας σε start-search.comκαι προεπιλεγμένη μηχανή αναζήτησης σε search.yahoo.com


Ωστόσο, όταν απεγκαθιστάτε το VPlay από τον υπολογιστή σας, οι προεπιλεγμένες ρυθμίσεις του προγράμματος περιήγησής σας δεν θα αποκατασταθούν. Αυτό σημαίνει ότι θα πρέπει να αφαιρέσετε την αρχική σελίδα του start-search.com από το αγαπημένο σας πρόγραμμα περιήγησης ιστού με μη αυτόματο τρόπο.

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

Πώς να αφαιρέσετε το start-search.com (Οδηγός αφαίρεσης ιών)

Αυτή η σελίδα είναι ένας ολοκληρωμένος οδηγός, ο οποίος θα αφαιρέσει το start-search.com από τον Internet Explorer, τον Firefox και το Google Chrome.
Εκτελέστε όλα τα βήματα με τη σωστή σειρά. Εάν έχετε οποιεσδήποτε ερωτήσεις ή αμφιβολίες σε οποιοδήποτε σημείο, ΝΑ ΣΤΑΜΑΤΗΣΕΙκαι ζητήστε τη βοήθειά μας.




ΒΗΜΑ 1: Απεγκαταστήστε τα κακόβουλα προγράμματα start-search.com από τον υπολογιστή σας

Σε αυτό το πρώτο βήμα, θα προσπαθήσουμε να εντοπίσουμε και να αφαιρέσουμε κάθε κακόβουλο πρόγραμμα που μπορεί να είναι εγκατεστημένο στον υπολογιστή σας.

Εάν αντιμετωπίζετε προβλήματα κατά την προσπάθεια απεγκατάστασης του προγράμματος start-search.com, μπορείτε να το χρησιμοποιήσετε για να αφαιρέσετε εντελώς αυτό το ανεπιθύμητο πρόγραμμα από τον υπολογιστή σας.

ΒΗΜΑ 2: Καταργήστε τον ιό start-search.com από τον Internet Explorer, τον Firefox και το Google Chrome

Καταργήστε τον ιό start-search.com από τον Internet Explorer

Μπορείτε να επαναφέρετε τις ρυθμίσεις του Internet Explorer για να τις επαναφέρετε στην κατάσταση που βρίσκονταν όταν ο Internet Explorer εγκαταστάθηκε για πρώτη φορά στον υπολογιστή σας.

Καταργήστε τον ιό start-search.com από το Mozilla Firefox

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

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

Καταργήστε τον ιό start-search.com από το Google Chrome

ΒΗΜΑ 3: Καταργήστε τον αεροπειρατή του προγράμματος περιήγησης start-search.com με το AdwCleaner

Το βοηθητικό πρόγραμμα AdwCleaner θα σαρώσει τον υπολογιστή και το πρόγραμμα περιήγησής σας για κακόβουλα αρχεία «start-search.com», επεκτάσεις προγράμματος περιήγησης και κλειδιά μητρώου, που μπορεί να έχουν εγκατασταθεί στον υπολογιστή σας εν αγνοία σας.

ΒΗΜΑ 4: Αφαιρέστε τον ιό start-search.com από τον υπολογιστή σας με το Malwarebytes Anti-Malware Free

Το Malwarebytes Anti-Malware Free χρησιμοποιεί τεχνολογία κορυφαίας βιομηχανίας για τον εντοπισμό και την αφαίρεση όλων των ιχνών κακόβουλου λογισμικού, συμπεριλαμβανομένων των σκουληκιών, των Trojans, των rootkits, των απατεώνων, των τηλεφωνητών, του spyware και άλλων.
Είναι σημαντικό να σημειωθεί ότι το Malwarebytes Anti-Malware λειτουργεί καλά και θα πρέπει να τρέχει παράλληλα με το λογισμικό προστασίας από ιούς χωρίς διενέξεις.

  1. Μπορείτε να κάνετε λήψη κατεβάστε το Malwarebytes Anti-Malwareαπό τον παρακάτω σύνδεσμο.
    (Αυτός ο σύνδεσμος θα ανοίξει μια νέα ιστοσελίδα από όπου μπορείτε να κάνετε λήψη του Malwarebytes Anti-Malware Free)
  2. Μετά τη λήψη, κλείστε όλα τα προγράμματα και, στη συνέχεια, κάντε διπλό κλικ στο εικονίδιο στην επιφάνεια εργασίας σας με το όνομα " mbam-setup-consumer-2.00.xx”για να ξεκινήσετε την εγκατάσταση του Malwarebytes Anti-Malware.

    Ενδέχεται να εμφανιστεί ένα παράθυρο διαλόγου Έλεγχος λογαριασμού χρήστη που σας ρωτά εάν θέλετε να εκτελέσετε αυτό το αρχείο. Εάν συμβεί αυτό, θα πρέπει να κάνετε κλικ στο " Ναί” για να συνεχίσετε με την εγκατάσταση.
  3. Όταν ξεκινήσει η εγκατάσταση, θα δείτε το που θα σας καθοδηγήσει στη διαδικασία εγκατάστασης.


    Για να εγκαταστήσετε το Malwarebytes Anti-Malware στον υπολογιστή σας, συνεχίστε να ακολουθείτε τις προτροπέςκάνοντας κλικ στο « Επόμενοκουμπί ".

  4. Μόλις εγκατασταθεί, το Malwarebytes Anti-Malware θα ξεκινήσει αυτόματα και θα δείτε ένα μήνυμα που δηλώνει ότι πρέπει να ενημερώσετε το πρόγραμμα και ότι δεν έχει εκτελεστεί ποτέ σάρωση στο σύστημά σας. Για να ξεκινήσετε μια σάρωση συστήματος, μπορείτε να κάνετε κλικ στο " Διορθώσετε τώρακουμπί ".


    Εναλλακτικά, μπορείτε να κάνετε κλικ στο « Σάρωση"καρτέλα και επιλέξτε" Σάρωση απειλών" και μετά κάντε κλικ στο "Σάρωση τώρα"κουμπί.

  5. Το Malwarebytes Anti-Malware θα ελέγξει τώρα για ενημερώσεις και εάν υπάρχουν, θα χρειαστεί να κάνετε κλικ στο " Ενημέρωση τώρακουμπί ".

  6. Το Malwarebytes Anti-Malware θα ξεκινήσει τώρα τη σάρωση του υπολογιστή σας για τον ιό start-search.com. Όταν το Malwarebytes Anti-Malware σαρώνει θα μοιάζει με την παρακάτω εικόνα.

  7. Όταν ολοκληρωθεί η σάρωση, θα εμφανιστεί τώρα μια οθόνη που θα σας δείχνει τις μολύνσεις από κακόβουλο λογισμικό που έχει εντοπίσει το Anti-Malware του Malwarebytes. Για να αφαιρέσετε τα κακόβουλα προγράμματα που έχει βρει το Malwarebytes Anti-malware, κάντε κλικ στο " Καραντίνα όλωνκουμπί ", και μετά κάντε κλικ στο " Κάνε αίτηση τώρακουμπί ".


    Λάβετε υπόψη ότι οι λοιμώξεις που εντοπίστηκαν μπορεί να είναι διαφορετικές από αυτές που εμφανίζονται στην εικόνα.
  8. Το Malwarebytes Anti-Malware θα θέτει πλέον σε καραντίνα όλα τα κακόβουλα αρχεία και τα κλειδιά μητρώου που έχει βρει. Κατά την κατάργηση των αρχείων, το Malwarebytes Anti-Malware ενδέχεται να απαιτεί επανεκκίνηση προκειμένου να αφαιρεθούν ορισμένα από αυτά. Εάν εμφανίσει ένα μήνυμα που δηλώνει ότι πρέπει να επανεκκινήσει τον υπολογιστή σας, επιτρέψτε του να το κάνει.


    Μετά την επανεκκίνηση του υπολογιστή σας, θα πρέπει να ανοίξετε το Malwarebytes Anti-Malware και να εκτελέσετε μια άλλη σάρωση "Threat Scan" για να επαληθεύσετε ότι δεν υπάρχουν εναπομείνασες απειλές

ΒΗΜΑ 5: Διπλός έλεγχος για μόλυνση του start-search.com με το HitmanPro

Το HitmanPro είναι ένας δεύτερος σαρωτής γνώμης, σχεδιασμένος για να σώσει τον υπολογιστή σας από κακόβουλο λογισμικό (ιούς, trojans, rootkits κ.λπ.) που έχουν μολύνει τον υπολογιστή σας παρά όλα τα μέτρα ασφαλείας που έχετε λάβει (όπως λογισμικό κατά των ιών, τείχη προστασίας κ.λπ.). Το HitmanPro έχει σχεδιαστεί για να λειτουργεί παράλληλα με τα υπάρχοντα προγράμματα ασφαλείας χωρίς διενέξεις. Σαρώνει τον υπολογιστή γρήγορα (λιγότερο από 5 λεπτά) και δεν επιβραδύνει τον υπολογιστή.

Εισαγωγή

Το σύστημα Balsa, που βασίζεται στην έκδοση Xubuntu 10.04 (διαυγές) του Linux, είναι διαθέσιμο για χρήση ως λογισμικό beta. Αυτή η σελίδα σάς λέει τι χρειάζεστε για να κατεβάσετε και να εκτελέσετε το Balsa και, στη συνέχεια, υποδεικνύει οδηγίες πώς να το κάνετε αυτό.

Το Balsa χρησιμοποιεί μια κάρτα SD για εκτέλεση σε υπολογιστή. Η κάρτα SD πρέπει να έχει ένα σύστημα Balsa για να μπορέσει να χρησιμοποιηθεί για την εκτέλεση του Balsa.

Μπορείτε να δημιουργήσετε μια κάρτα SD Balsa σε έναν υπολογιστή και να την εκτελέσετε σε διαφορετικό υπολογιστή. Ο υπολογιστής στον οποίο το παράγετε δεν χρειάζεται να εκτελεί το ίδιο το Balsa.

Τι χρειάζεστε για να τρέξετε το Balsa

Για να εκτελέσετε το Balsa, θα χρειαστείτε τα εξής:

Για την παραγωγή της κάρτας Balsa SD, ο υπολογιστής στον οποίο την παράγετε θα χρειαστεί 5 ή 9 gigabyte χώρου κατά την κατασκευή της κάρτας.

Σημείωση σχετικά με τους αναγνώστες καρτών SD

Σε ορισμένους παλαιότερους φορητούς υπολογιστές, η συσκευή ανάγνωσης SD δεν μπορεί να χειριστεί μια κάρτα SD 4 ή 8 gigabyte. Άλλες συσκευές ανάγνωσης καρτών SD που χρησιμοποιούνται από ορισμένους υπολογιστές Dell δεν λειτουργούν με το σύστημα Balsa. Σε οποιαδήποτε από αυτές τις περιπτώσεις, το Balsa μπορεί να εκτελεστεί σε ξεχωριστή συσκευή ανάγνωσης καρτών USB SD.

Οι κάρτες SD Balsa διατίθενται σε εκδόσεις 4 ή 8 gigabyte. Οποιαδήποτε έκδοση μπορεί να γίνει είτε σε μηχανή Windows είτε σε Linux. Τόσο τα Windows όσο και το Linux χρησιμοποιούν το ίδιο αρχείο λήψης για την κάρτα και η κάρτα που έχει δημιουργηθεί θα είναι πανομοιότυπη με τη μία στο άλλο σύστημα. Επιλέξτε ένα από αυτά.

Η PHP παρέχει πολλές συναρτήσεις που αναζητούν μια συμβολοσειρά μέσα σε μια άλλη. Ορισμένοι επιστρέφουν τη θέση της συμβολοσειράς που βρέθηκε (strpos , strrpos και σχετικές) και επιστρέφουν μέρος της αρχικής συμβολοσειράς (strstr και strrchr). Οι συναρτήσεις αναζήτησης επιστρέφουν false εάν η συμβολοσειρά που αναζητάτε δεν βρίσκεται στο πρωτότυπο.

Εάν ο στόχος σας είναι απλώς να προσδιορίσετε εάν μια συμβολοσειρά υπάρχει σε μια άλλη, η πιο αποτελεσματική επιλογή είναι το strpos.

στρπος

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

$str = ; // αναζήτηση για την πρώτη εμφάνιση του "need" μέσα στο $str$pos = strpos($str, "ανάγκη"); // τύπος εμφάνισης και τιμή $pos var_dump ($pos) ; // int(3)

Αν και δείξαμε το αποτέλεσμα χρησιμοποιώντας το var_dump παραπάνω, μια τυπική εξέταση της τιμής επιστροφής για το strpos εκτελείται ως εξής:

// πώς να επιθεωρήσετε την τιμή επιστροφής strpos ($pos) if ( $pos !== false ) ( // εάν η συμβολοσειρά αναζήτησης βρέθηκε echo "το βρέθηκε στη θέση $pos" ;) else (echo "δεν βρέθηκε." ; )

Βεβαιωθείτε ότι χρησιμοποιείτε τους τελεστές === ή !== για να συγκρίνετε την τιμή της συνάρτησης strpos που επιστρέφει με false. Εάν η υποσυμβολοσειρά βρεθεί στην αρχή της συμβολοσειράς, το strpos θα επιστρέψει το 0, το οποίο οι τελεστές == ή != θα μετατρεπόταν σε ψευδές .

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

/* ορίσματα strpos: * συμβολοσειρά θέματος (γνωστός και ως άχυρα), συμβολοσειρά αναζήτησης (βελόνα), μετατόπιση (προαιρετικό) */ // έναρξη αναζήτησης για "ανάγκη" από τον χαρακτήρα 10 σε $str$pos = strpos ($str , "need" , 10 ); // 20

Όταν ξεκινάτε την αναζήτηση από τον χαρακτήρα 10, το αποτέλεσμα είναι 20, η θέση ευρετηρίου της αρχής της λέξης βελόνα.

στρρπος

Η συνάρτηση strrpos βρίσκει τη θέση της τελευταίας εμφάνισης μιας υποσυμβολοσειράς σε μια συμβολοσειρά:

// παράδειγμα συμβολοσειράς για χρήση για αναζητήσεις$str = «Πρέπει να βρούμε τη βελόνα στα άχυρα».; // βρείτε τη θέση της τελευταίας εμφάνισης της "ανάγκης" στο $str$pos = strrpos ($str , "need" ); // 20

Η συνάρτηση strrpos παρέχει επίσης μια προαιρετική παράμετρο μετατόπισης που μπορεί να είναι είτε θετική είτε αρνητική. Εάν η μετατόπιση είναι θετική, αυτός ο αριθμός χαρακτήρων στην αρχή της συμβολοσειράς θα εξαιρεθεί από την αναζήτηση. Εξετάστε το ακόλουθο παράδειγμα:

// αναζήτηση από δεξιά για το "Εμείς" εξαιρουμένων των πρώτων 3 χαρακτήρων$pos = strrpos ($str , "Εμείς" , 3 ); var_dump ($pos) ; //bool(false)

Το αποτέλεσμα είναι ψευδές αφού το "Εμείς" δεν βρίσκεται όταν η αναζήτηση εξαιρεί τους τρεις πρώτους χαρακτήρες.

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

// αναζήτηση από δεξιά για το "hay" εξαιρουμένων των τελευταίων 5 χαρακτήρων$pos = strrpos ($str , "hay" , - 5 ); // int(34) // αναζήτηση από δεξιά εξαιρουμένων των τελευταίων 10 χαρακτήρων$pos = strrpos ($str , "hay" , - 10 ); //bool(false)

Το τελευταίο αποτέλεσμα παραπάνω είναι ψευδές, καθώς το "σανό" δεν βρίσκεται όταν η αναζήτηση εξαιρεί τους τελευταίους 10 χαρακτήρες.

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

stripos και stripos

Οι συναρτήσεις strpos και strrpos εκτελούν αναζητήσεις με διάκριση πεζών-κεφαλαίων. Η PHP παρέχει λειτουργίες stripos και strripos για την εκτέλεση αναζητήσεων χωρίς διάκριση πεζών-κεφαλαίων. Λειτουργούν ακριβώς όπως τα ισοδύναμά τους με διάκριση πεζών-κεφαλαίων:

// παράδειγμα συμβολοσειράς για χρήση για αναζητήσεις$str = «Πρέπει να βρούμε τη βελόνα στα άχυρα».; // κάντε αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων για "εμείς"$pos = stripos($str, "εμείς"); // int(0) // κάντε αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων από δεξιά για "Ανάγκη"$pos = strripos($str, "Ανάγκη"); // int(20)

Η αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων για το "εμείς" έχει ως αποτέλεσμα 0 , υποδεικνύοντας ότι βρέθηκε στην αρχή της συμβολοσειράς που αναζητούμε. Η αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων για το "Ανάγκη" από τα δεξιά (χρησιμοποιώντας το strripos), το βρίσκει στη θέση 20 .

strstr

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

// παράδειγμα συμβολοσειράς $str = «Πρέπει να βρούμε τη βελόνα στα άχυρα».; // αναζήτηση για "the" στο $str $newstr = strstr ($str , "the" ) ; var_dump ($newstr) ; // string(27) "the needle in the haystack."

Η συνάρτηση strstr επιστρέφει το πρώτο "the" που βρίσκει, μαζί με την υπόλοιπη αρχική συμβολοσειρά.

Εάν μεταβιβάσετε το true ως τρίτο όρισμα στο strstr , το τμήμα της αρχικής συμβολοσειράς πρινεπιστρέφεται η συμβολοσειρά που βρέθηκε:

// pass true για να επιστρέψει το τμήμα του $str πριν από το "the"$newstr = strstr ($str , "the" , true ); var_dump ($newstr) ; // string(16) "Πρέπει να βρούμε"

Αυτή τη φορά η συνάρτηση strstr επιστρέφει τα πάντα πριν από το πρώτο "the" στη συμβολοσειρά.

Η PHP παρέχει επίσης τη συνάρτηση stristr η οποία λειτουργεί ακριβώς όπως η strstr εκτός από το ότι εκτελεί αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων.

strhrchr

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

// παράδειγμα συμβολοσειράς $str = «Πρέπει να βρούμε τη βελόνα στα άχυρα».; // αναζήτηση από δεξιά για το "s" στο $str$newstr = strstr ($str , "s" ); var_dump ($newstr) ; // string(6) "stack."

Παρατηρήστε ότι σε αντίθεση με το strstr, εάν το δεύτερο όρισμα αποτελείται από πολλούς χαρακτήρες, χρησιμοποιείται μόνο ο πρώτος:

// δοκιμή με δεύτερο όρισμα πολλών χαρακτήρων$newstr = strrchr ($str , "the" ); var_dump ($newstr) ; // string(5) "tack."

Αντί να επιστρέψει "the haystack" , η συνάρτηση strrchr επιστρέφει "tack" , εφαρμόζοντας μόνο το πρώτο γράμμα του δεύτερου ορίσματος στην αναζήτηση.

Γεια σου, Χαμπρ!

Σήμερα θα ήθελα να παρουσιάσω τους αρχάριους webmasters σε μια ποικιλία έξυπνων τρόπων χρήσης της προσωρινής αποθήκευσης εξόδου στην PHP. Οι έμπειροι webmasters είναι απίθανο να βρουν κάτι χρήσιμο εδώ. Αν και - ποιος ξέρει;

Όπως όλοι γνωρίζετε, το buffer εξόδου στην php ελέγχεται από ένα σύνολο συναρτήσεων που ξεκινούν με "ob_". Το πιο σημαντικό από αυτά είναι το ob_start. Κατά την εκκίνηση, συλλέγει τα επόμενα αποτελέσματα, δηλαδή όλα τα είδη print(), echo κ.λπ., τα οποία στη συνέχεια δίνονται στον επισκέπτη με τη μορφή σελίδας html. Και αν ξεκινήσαμε την αποθήκευση στην προσωρινή μνήμη πριν από την έξοδο, τότε μπορούμε επιτέλους να κάνουμε κάτι με αυτήν τη σχεδόν έτοιμη σελίδα.


Για παράδειγμα, θέλουμε να φιλτράρουμε όλους τους συνδέσμους προς εξωτερικούς ιστότοπους.

Στο φόρουμ μας, τόσο παλιό όσο το τσεκούρι του Αυστραλοπίθηκου, σωρεύουν πάρα πολλοί spammers, που παρασύρουν επισκέπτες σε μέρη γεμάτα ακολασία, μονόοπλους ληστές και πολιτική αναταραχή. Θα μπορούσαμε να χρησιμοποιήσουμε js με παρακολούθηση, αλλά θέλουμε να αλλάξουμε όλους αυτούς τους συνδέσμους ως εξής:

"http://blackjack-hookers.com" => "http://myoldforum.ru/redirect.php?url=blackjack-hookers.com"

Η μέθοδος μπορεί να μην είναι η πιο αποτελεσματική, αλλά είναι αποτελεσματική. Γράψαμε το redirect.php με φίλτρο και μαύρη λίστα και τώρα πρέπει να μετατρέψουμε όλους τους συνδέσμους σε χιλιάδες σελίδες φόρουμ. Χρησιμοποιώντας το ob_start και μερικές κανονικές εκφράσεις, μπορούμε να το κάνουμε αυτό σε λίγες μόνο γραμμές:

Συνάρτηση f_callback($buffer)( $buffer = preg_replace("#http://(www.)?myoldforum\.ru/#","/",$buffer); $buffer = preg_replace("#href="http ://([^"]*)"#","#href="/redirect\.php\?url=$1",$buffer); return $buffer; ) ob_start(f_callback);

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

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

Συνάρτηση generate_plugin() ( /*generate something*/ ) συνάρτηση f_callback($buffer)( /*...*/ $buffer = str_replace ("",generate_plugin(),$buffer); /*...*/ return $buffer; ) ob_start("f_callback");

Τώρα, όπου προσθέσαμε στο περιεχόμενο, θα εμφανιστεί αυτό που θέλαμε. Μία από τις εφαρμογές είναι η εισαγωγή ενός γραφικού στοιχείου js σε μια σελίδα ιστότοπου. Για παράδειγμα, χάρτες Yandex. Συνήθως αυτό δεν είναι δύσκολο, αλλά μερικές φορές ένας κακογραμμένος επεξεργαστής σελίδας ιστότοπου ξεφεύγει από εισαγωγικά και σγουρά στηρίγματα, σπάζοντας το γραφικό στοιχείο. Όπως μπορείτε να δείτε, αυτό το πρόβλημα λύνεται εύκολα.

Το σύνολο των εργαλείων PHP για εργασία με το buffer εξόδου είναι πλούσιο και δεν περιορίζεται μόνο στο ob_start. Οι μέθοδοι που περιγράφονται παραπάνω είναι σε ορισμένες περιπτώσεις υπερβολικά απαιτητικές πηγές και δυσκίνητες, καθώς λειτουργούν σε ολόκληρη τη σελίδα. Μπορούμε να επεξεργαστούμε μόνο ένα μέρος του δημιουργώντας ένα περιτύλιγμα στο πρότυπο γύρω από τη δημιουργία κάτι στο οποίο δεν θέλουμε να μπούμε, αλλά αυτό σίγουρα πρέπει να διορθωθεί:

(ΔΗΜΙΟΥΡΓΗΣΤΕ ΜΕΓΑΛΟ ΤΡΕΛΟ)

Πρέπει να έχετε ήδη προσέξει όλες αυτές τις φράσεις: "Δεν θέλω να μπω σε αυτό", "αρχαία όσο μια καρέκλα τυραννόσαυρου", "ένας στραβά γραμμένος συντάκτης"... Σε έναν ιδανικό κόσμο, τα κελύφη γύρω από το buffer εξόδου είναι δεν χρειάζεται. Ό,τι μπορεί να γίνει με το ob_start θα μπορούσε θεωρητικά να γίνει χωρίς αυτό. Αυτή η τεχνική μερικές φορές εισάγει σύγχυση στον κώδικα του έργου· πολλοί βλέπουν το νόημά της μόνο στην αποστολή της εξόδου στο ob_gzhandler για συμπίεση και θεωρούν τη χρήση της σε άλλες περιπτώσεις επικίνδυνη. Αλλά συχνά απλά δεν μπορείτε να κάνετε χωρίς έλεγχο εξόδου.

Ειδικά αν δεν θέλετε να σκάψετε βαθιά.

(PHP 4, PHP 5, PHP 7)

ob_start — Ενεργοποίηση προσωρινής αποθήκευσης εξόδου

Περιγραφή

Bool ob_start ([ κλητός$output_callback = ΜΗΔΕΝΙΚΟ [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

Αυτή η λειτουργία επιτρέπει την αποθήκευση εξόδου στην προσωρινή μνήμη. Εάν η αποθήκευση εξόδου είναι ενεργή, η έξοδος σεναρίου δεν αποστέλλεται (εκτός από τις κεφαλίδες), αλλά αποθηκεύεται σε μια εσωτερική προσωρινή μνήμη.

Τα περιεχόμενα αυτού του εσωτερικού buffer μπορούν να αντιγραφούν σε μια μεταβλητή συμβολοσειράς χρησιμοποιώντας ob_get_contents(). Για να εξάγετε τα περιεχόμενα του εσωτερικού buffer θα πρέπει να χρησιμοποιήσετε ob_end_flush(). Εναλλακτικά μπορείτε να χρησιμοποιήσετε ob_end_clean()για να καταστρέψετε τα περιεχόμενα του buffer.

Προσοχή

Ορισμένοι διακομιστές ιστού (για παράδειγμα Apache) αλλάζουν τον κατάλογο εργασίας του σεναρίου όταν καλείται η συνάρτηση επανάκλησης. Μπορείτε να το επαναφέρετε χρησιμοποιώντας chdir(dirname($_SERVER["SCRIPT_FILENAME"]))στη λειτουργία επανάκλησης.

Τα buffer εξόδου ωθούνται στη στοίβα, που σημαίνει ότι επιτρέπονται οι κλήσεις ob_start()αφού καλέσετε έναν άλλο ενεργό ob_start(). Σε αυτή την περίπτωση είναι απαραίτητο να καλέσετε ob_end_flush()τον κατάλληλο αριθμό φορών. Εάν είναι ενεργές πολλές λειτουργίες επανάκλησης, η έξοδος φιλτράρεται διαδοχικά για καθεμία από αυτές με σειρά ένθεσης.

Λίστα παραμέτρων

Μπορεί να καθοριστεί μια προαιρετική παράμετρος output_callback. Αυτή η συνάρτηση παίρνει μια συμβολοσειρά ως όρισμα και πρέπει επίσης να επιστρέψει μια συμβολοσειρά. Καλείται όταν γίνεται επαναφορά (αποστολή) ή εκκαθάριση (χρήση ob_flush(), ob_clean()ή παρόμοιες λειτουργίες) ή εάν η προσωρινή μνήμη εξόδου απορριφθεί στο πρόγραμμα περιήγησης στο τέλος του αιτήματος. Όταν καλείται η συνάρτηση output_callback, λαμβάνει τα περιεχόμενα του buffer και πρέπει να επιστρέψει τα ενημερωμένα περιεχόμενα για να σταλεί η buffer εξόδου στο πρόγραμμα περιήγησης. Εάν το output_callback δεν είναι έγκυρη συνάρτηση, τότε η τεκμηριωμένη συνάρτηση θα επιστρέψει ΨΕΥΔΗΣ. Περιγραφή συνάρτησης για αυτήν την παράμετρο:

Σειρά χειριστής (συμβολοσειρά $buffer [, int $φάση ])

Ρυθμιστής Περιεχόμενα του buffer εξόδου.φάση Μάσκα bit σταθερών PHP_OUTPUT_HANDLER_*.

Εάν επιστρέψει το output_callback ΨΕΥΔΗΣ, τότε οι αρχικές πληροφορίες θα σταλούν στο πρόγραμμα περιήγησης χωρίς αλλαγές.

Η παράμετρος output_callback μπορεί να αγνοηθεί μεταβιβάζοντας την τιμή ΜΗΔΕΝΙΚΟ.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush()Και ob_start()δεν μπορεί να κληθεί από συναρτήσεις επανάκλησης, καθώς η συμπεριφορά τους είναι απρόβλεπτη. Εάν θέλετε να διαγράψετε τα περιεχόμενα του buffer, επιστρέψτε το "" (μια κενή συμβολοσειρά) από τη συνάρτηση επανάκλησης. Επίσης, δεν μπορείτε να καλέσετε συναρτήσεις print_r ($expression, true)ή highlight_file ($filename, true)από τις λειτουργίες επανάκλησης προσωρινής αποθήκευσης εξόδου.

Σχόλιο:

Στην PHP 4.0.4 η συνάρτηση ob_gzhandler()εισήχθη για να διευκολύνει την αποστολή δεδομένων με κωδικοποίηση gz σε προγράμματα περιήγησης ιστού που υποστηρίζουν συμπιεσμένες ιστοσελίδες. ob_gzhandler()καθορίζει τον τύπο κωδικοποίησης περιεχομένου που είναι αποδεκτός από το πρόγραμμα περιήγησης και επιστρέφει την έξοδο ανάλογα.

τεμάχιο_μέγεθος

Εάν η προαιρετική παράμετρος chunk_size περάσει, το buffer θα ξεπλυθεί μετά από οποιαδήποτε έξοδο μεγαλύτερη ή ίση με chunk_size σε μέγεθος. Προεπιλεγμένη τιμή 0 σημαίνει ότι η συνάρτηση εξόδου θα κληθεί όταν το buffer κλείσει.

Πριν από την PHP 5.4.0, τιμή 1 ήταν μια ειδική τιμή που καθόριζε την παράμετρο τεμάχιο_μέγεθοςστο 4096.

Η παράμετρος flags είναι μια μάσκα bit που ελέγχει τις λειτουργίες που μπορούν να εκτελεστούν στο buffer εξόδου. Από προεπιλογή, επιτρέπει στο buffer εξόδου να ξεπλυθεί, να ξεπλυθεί και να διαγραφεί, που είναι το ίδιο με το | | , ή PHP_OUTPUT_HANDLER_STDFLAGSως συντομογραφία αυτού του συνδυασμού.

Κάθε σημαία ελέγχει την πρόσβαση σε ένα σύνολο λειτουργιών, όπως περιγράφεται παρακάτω:

Συνεχής Λειτουργίες
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(), ob_end_clean(), Και ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush(), Και ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), Και ob_get_flush().

Επιστρεφόμενες τιμές

Επιστροφές ΑΛΗΘΗΣμετά την επιτυχή ολοκλήρωση ή ΨΕΥΔΗΣσε περίπτωση λάθους.

Λίστα αλλαγών

Εκδοχή Περιγραφή
7.0.0 Αν ob_start()χρησιμοποιείται εντός της συνάρτησης επανάκλησης του buffer εξόδου, αυτή η συνάρτηση δεν θα δημιουργεί πλέον σφάλμα E_ΣΦΑΛΜΑ, αλλά θα καλέσει E_ΑΝΑΚΤΗΣΗ_ΣΦΑΛΜΑ, επιτρέποντας σε τρίτους χειριστές σφαλμάτων να το εντοπίσουν.
5.4.0 Τρίτη παράμετρος ob_start()άλλαξε από boolean ( boolean) της παραμέτρου διαγραφής (η οποία, όταν οριστεί σε ΨΕΥΔΗΣεμπόδισε τη διαγραφή του buffer μέχρι να ολοκληρωθεί το σενάριο) σε έναν ακέραιο ( ακέραιος αριθμός) παράμετρος σημαίες. Δυστυχώς, αυτό σημαίνει ασυμβατότητα API για κώδικα που χρησιμοποιούσε την τρίτη παράμετρο πριν από την PHP 5.4.0. Δείτε το παράδειγμα σημαιών για να κατανοήσετε πώς να εργαστείτε με τον κώδικα, ώστε να είναι συμβατός και με τις δύο εκδόσεις.
5.4.0 Παράμετρος τεμάχιο_μέγεθος, εγκατεστημένο σε 1 , τώρα έχει ως αποτέλεσμα την έξοδο 1 byte στην προσωρινή μνήμη εξόδου.
4.3.2 Η συνάρτηση θα επιστρέψει ΨΕΥΔΗΣσε περίπτωση που το output_callback δεν μπορεί να εκτελεστεί.

Παραδείγματα

Παράδειγμα #1 Παράδειγμα μιας συνάρτησης επανάκλησης που ορίζεται από το χρήστη

Επιστροφή κλήσης συνάρτησης ($buffer)
{
// αντικαταστήστε όλα τα μήλα με πορτοκάλια
return (str_replace("μήλα", "πορτοκάλια", $buffer));
}

Ob_start("ανάκληση");

?>


Είναι σαν να συγκρίνεις μήλα και πορτοκάλια.






ob_end_flush();