Wyszukiwanie i zastępowanie w napisach
Znajdowanie i zastępowanie tekstu za pomocą strpos, str_replace i str_contains.
Wyszukiwanie i zastępowanie w napisach to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.
Wyszukiwanie tekstu w ciągach znaków
PHP oferuje wiele funkcji do lokalizowania podciągów. Najważniejsze z nich:
strpos()— znajdź pozycję pierwszego wystąpieniastrrpos()— znajdź pozycję ostatniego wystąpieniastr_contains()— PHP 8, sprawdź, czy element istniejestr_starts_with()/str_ends_with()— PHP 8
strpos()
Zwraca pozycję (indeksowaną od 0) pierwszego wystąpienia lub false, jeśli go nie znaleziono:
<?php
$str = 'the quick brown fox';
$pos = strpos($str, 'brown');
echo $pos; // 10
// Always use === to check for false (0 is also falsy!)
if (strpos($str, 'quick') !== false) {
echo 'Found!';
}str_contains, str_starts_with, str_ends_with
W PHP 8 dodano te proste funkcje zwracające wartości logiczne:
<?php
$email = 'user@example.com';
var_dump(str_contains($email, '@')); // true
var_dump(str_starts_with($email, 'user')); // true
var_dump(str_ends_with($email, '.com')); // true
var_dump(str_ends_with($email, '.org')); // falsestr_replace()
Zastąp wszystkie wystąpienia wyszukiwanego ciągu zamiennikiem:
<?php
$template = 'Hello {name}, your order #{id} is ready.';
$result = str_replace(
['{name}', '{id}'],
['Alice', '4521'],
$template
);
echo $result;
// Hello Alice, your order #4521 is ready.str_ireplace() — bez rozróżniania wielkości liter
str_ireplace() działa podobnie jak str_replace(), ale nie rozróżnia wielkości liter:
<?php
$text = 'PHP is great. php is powerful. PHP is fun.';
$result = str_ireplace('php', 'PHP 8', $text);
echo $result;
// PHP 8 is great. PHP 8 is powerful. PHP 8 is fun.substr_replace()
Zastąp część ciągu na podstawie jej pozycji i długości:
<?php
$str = 'Hello World';
echo substr_replace($str, 'PHP', 6, 5);
// Hello PHP
// Replace from end
echo substr_replace($str, '!', -1);
// Hello Worl!substr_count()
Zlicz, ile razy występuje dany podciąg:
<?php
$text = 'to be or not to be';
echo substr_count($text, 'be'); // 2
echo substr_count($text, 'to'); // 2
echo substr_count($text, 'or'); // 1preg_replace() — zastępowanie za pomocą wyrażeń regularnych
Użyj wzorca wyrażenia regularnego do wykonywania złożonych zamian:
<?php
$html = '<p>Hello <b>World</b></p>';
// Strip HTML tags
$plain = preg_replace('/<[^>]+>/', '', $html);
echo $plain; // Hello World
// Replace multiple spaces with one
$spaced = 'too many spaces';
echo preg_replace('/\s+/', ' ', $spaced);
// too many spaceshtmlspecialchars zapobiegające atakom XSS
Przed wyświetleniem danych wprowadzonych przez użytkownika w kodzie HTML zawsze je koduj, aby zapobiegać atakom XSS:
<?php
$userInput = '<script>alert("hacked")</script>';
// Dangerous:
echo $userInput; // executes script!
// Safe:
echo htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');
// <script>alert("hacked")</script>Zliczanie zamian
str_replace() może poinformować, ile zamian wykonano, za pomocą opcjonalnego czwartego parametru:
<?php
$text = 'cat and cat and cat';
$count = 0;
$result = str_replace('cat', 'dog', $text, $count);
echo $result; // dog and dog and dog
echo $count; // 3Dopełnianie ciągu znaków
Dopełnij ciąg znaków do określonej długości na potrzeby formatowania:
<?php
echo str_pad('42', 8); // '42 ' (right-pad)
echo str_pad('42', 8, '0', STR_PAD_LEFT); // '000042'
echo str_pad('PHP', 7, '-', STR_PAD_BOTH); // '--PHP--'Szybkie sprawdzenie
Która funkcja PHP 8 sprawdza, czy ciąg znaków zaczyna się od danego prefiksu?
Podsumowanie: wyszukiwanie i zastępowanie
Najważniejsze funkcje:
strpos/strrpos— znajdowanie pozycji (należy sprawdzać === false)str_contains/starts_with/ends_with— funkcje zwracające wartości logiczne dostępne w PHP 8str_replace/str_ireplace— proste zastępowaniepreg_replace— zastępowanie na podstawie wyrażeń regularnychhtmlspecialchars— kodowanie danych wyjściowych HTML
Często zadawane pytania
Czy lekcja „Wyszukiwanie i zastępowanie w napisach” jest bezpłatna?
Tak — pełny tekst „Wyszukiwanie i zastępowanie w napisach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Wyszukiwanie i zastępowanie w napisach”?
Znajdowanie i zastępowanie tekstu za pomocą strpos, str_replace i str_contains. Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć PHP Academy?
Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Wyszukiwanie i zastępowanie w napisach”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?
Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy napisów i konkatenacja
- Wyszukiwanie i zastępowanie w napisach
- Funkcje podciągów i dopełniania
- Dzielenie i łączenie ciągów