0Pricing
PHP Academy · Lekcja

Zastępowanie tekstu za pomocą preg_replace

Zastępuj dopasowania ciągami zastępczymi i odwołaniami wstecznymi

Zastępowanie tekstu za pomocą preg_replace to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 3 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.

Sygnatura preg_replace()

preg_replace($pattern, $replacement, $subject) zwraca subject ze wszystkimi zastąpionymi dopasowaniami. Przekaż tablicę subjectów, aby przetworzyć wiele ciągów jednocześnie.

Proste zastępowanie

Zastąp wszystkie cyfry w ciągu gwiazdką.

<?php
$result = preg_replace('/\d/', '*', 'Order #12345');
echo $result; // "Order #*****"

Odwołania wsteczne w zastępowaniu

Użyj $1, $2 itd. (lub \1, \2), aby wstawić przechwycone grupy do ciągu zastępującego.

<?php
$result = preg_replace('/^(\w+)\s(\w+)$/', '$2, $1', 'John Smith');
echo $result; // "Smith, John"

Nazwane odwołania wsteczne

Do nazwanych grup przechwytujących można odwoływać się w zastąpieniu za pomocą ${name}.

<?php
$result = preg_replace(
    '/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
    '${day}/${month}/${year}',
    '2025-06-15'
);
echo $result; // "15/06/2025"

Zastępowanie wielu wzorców

Przekaż tablice wzorców i zastąpień, aby przetworzyć wiele reguł jednocześnie.

<?php
$result = preg_replace(
    ['/foo/', '/bar/'],
    ['baz',   'qux'],
    'foo and bar'
);
echo $result; // "baz and qux"

Parametr limitu

Czwarty parametr ogranicza liczbę wykonywanych zastąpień. Przekaż -1, aby usunąć limit (wartość domyślna).

<?php
$result = preg_replace('/a/', 'X', 'banana', 2);
echo $result; // "bXnXna"

Parametr count

Przekaż piątą zmienną, aby otrzymać liczbę wykonanych zastąpień.

<?php
$count  = 0;
$result = preg_replace('/e/', '3', 'hello everyone', -1, $count);
echo "$count replacements"; // "3 replacements"

preg_replace_callback()

Gdy logika zastępowania jest złożona, użyj preg_replace_callback(), aby przetwarzać każde dopasowanie za pomocą funkcji closure.

<?php
$result = preg_replace_callback(
    '/\d+/',
    fn($m) => $m[0] * 2,
    'Item: 5, Qty: 3'
);
echo $result; // "Item: 10, Qty: 6"

Przykład usuwania znaczników HTML

Usuń wszystkie znaczniki HTML za pomocą prostego regexu (w środowisku produkcyjnym użyj strip_tags()).

<?php
$clean = preg_replace('/<[^>]+>/', '', '<b>Hello</b> World');
echo $clean; // "Hello World"

Tworzenie sluga z ciągu

Przekształć tytuł w slug bezpieczny dla adresu URL.

<?php
function slugify(string $s): string {
    $s = strtolower($s);
    $s = preg_replace('/[^a-z0-9]+/', '-', $s);
    return trim($s, '-');
}
echo slugify('Hello World!'); // "hello-world"

Uwaga dotycząca wydajności

Wzorce powinny być proste; unikaj katastrofalnego cofacia. Do złożonych transformacji używaj preg_replace_callback zamiast łączenia wielu wywołań preg_replace.

Różnica w stosunku do str_replace

str_replace jest szybsze w przypadku zastępowania zwykłego tekstu. Używaj preg_replace tylko wtedy, gdy potrzebujesz możliwości wzorca regex.

Podsumowanie

preg_replace zastępuje wszystkie dopasowania wzorca. Używaj odwołań wstecznych ($1), aby ponownie wykorzystać przechwycone grupy. Używaj preg_replace_callback, gdy logika zastępowania jest dynamiczna.

Szybkie sprawdzenie

Jak odwołać się do pierwszej grupy przechwytującej w ciągu zastępującym funkcji preg_replace?

Często zadawane pytania

Czy lekcja „Zastępowanie tekstu za pomocą preg_replace” jest bezpłatna?

Tak — pełny tekst „Zastępowanie tekstu za pomocą preg_replace” 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 „Zastępowanie tekstu za pomocą preg_replace”?

Zastępuj dopasowania ciągami zastępczymi i odwołaniami wstecznymi Ć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 3 z 4.

Ile czasu zajmuje lekcja „Zastępowanie tekstu za pomocą preg_replace”?

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

  1. Podstawy składni wyrażeń regularnych
  2. Dopasowywanie za pomocą preg_match
  3. Zastępowanie tekstu za pomocą preg_replace
  4. Dzielenie ciągów i praktyczne wzorce
← Powrót do PHP Academy