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$lengthznakó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.