Συνάρτηση strpos

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

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

Υπάρχει επίσης η συνάρτηση stripos, η οποία κάνει το ίδιο πράγμα, αλλά χωρίς διάκριση πεζών-κεφαλαίων.

Σύνταξη

phpstrpos(string $haystack, string $needle, int $offset = 0): int|false

Παράδειγμα

Σε αυτό το παράδειγμα, η συνάρτηση θα επιστρέψει τη θέση του πρώτου συμβόλου 'c'. Καταλαμβάνει τη θέση 2, καθώς η αρίθμηση ξεκινά από το 0:

php<?php
  echo strpos('abcde abcde', 'c');
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php2

Παράδειγμα

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

php<?php
  echo strpos('abcde abcde', 'c', 3);
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php8

Παράδειγμα

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

php<?php
  if (strpos('http://site.ru', 'http://')) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Αποτέλεσμα εκτέλεσης κώδικα (όχι όπως αναμέναμε):

php'---'

Παράδειγμα

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

php<?php
  if (strpos('http://site.ru', 'http://') === 0) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php'+++'

Δείτε επίσης

  • τη συνάρτηση strrpos,
    που επιστρέφει τη θέση της τελευταίας εμφάνισης υποσυμβολοσειράς
  • τη συνάρτηση str_contains,
    που ελέγχει την εμφάνιση συμβόλου σε συμβολοσειρά
  • τη συνάρτηση str_starts_with,
    που ελέγχει την αρχή της συμβολοσειράς
  • τη συνάρτηση str_ends_with,
    που ελέγχει το τέλος της συμβολοσειράς
  • τη συνάρτηση array_search,
    που πραγματοποιεί αναζήτηση σε πίνακα