strncmp

funkcja

Porównuje pierwsze n bajtów dwóch ciągów z uwzględnieniem wielkości liter. Przydatne do sprawdzania, czy ciąg zaczyna się od określonego prefiksu.

strncmp(string $string1, string $string2, int $length): int

strncmp to wariant strcmp, który porównuje jedynie pierwsze $length bajtów obu ciągów. Zwraca:

  • 0 — pierwsze $length znaków jest identyczne,
  • wartość ujemną lub dodatnią — ciągi różnią się w ramach porównywanych znaków.

Dzięki temu możesz szybko sprawdzić, czy tekst zaczyna się od konkretnego prefiksu, bez kopiowania podciągu przez substr.

<?php
declare(strict_types=1);

echo strncmp('baner', 'bank', 3);  // wynik: 0  (pierwsze 3 znaki 'ban' są równe)
echo strncmp('baner', 'bank', 4);  // wynik: ujemna (e < k na 4. pozycji)

// Sprawdzanie czy URL zaczyna się od 'https'
$url = 'https://example.com';
if (strncmp($url, 'https', 5) === 0) {
    echo 'Połączenie szyfrowane.';
}

Jeśli chcesz tego samego bez uwzględniania wielkości liter, skorzystaj z strncasecmp. Pamiętaj, że argument $length liczy bajty — dla znaków spoza ASCII (np. ą, ę) jeden znak to 2 bajty w UTF-8.

📘 Naucz się w lekcji →