substr_count în PHP

Numără de câte ori apare un text în alt text.

Sintaxă
substr_count(string $haystack, string $needle, int $offset = 0, ?int $length = null): int

Ce face substr_count

substr_count numără aparițiile lui $needle. Face diferența între litere mari și mici, iar aparițiile care se suprapun sunt numărate o singură dată.

Cu $offset și $length poți număra doar într-o parte a textului.

Parametri

Parametru Descriere
$haystack Textul în care se numără.
$needle Textul căutat. Nu poate fi gol.
$offset Opțional. Poziția de la care începe numărarea.
$length Opțional. Lungimea porțiunii în care se numără.

Ce returnează

Numărul de apariții.

Exemple

Exemplul 1: Numărarea unui cuvânt

<?php
$text = "PHP e simplu. Învăț PHP pe dexblog.ro. php";

echo substr_count($text, "PHP") . "\n";
echo substr_count(strtolower($text), "php");

Rezultat

2
3

Exemplul 2: Numărul de rânduri și suprapunerile

În „aaa”, textul „aa” apare de două ori dacă admiți suprapunerea, dar substr_count îl numără o singură dată.

<?php
$csv = "Ana,25\nMihai,31\nIoana,28\n";

echo "Rânduri: " . substr_count($csv, "\n") . "\n";
echo substr_count("aaa", "aa");

Rezultat

Rânduri: 3
1

Greșeli frecvente

  • Numeri un cuvânt și găsești și apariții în interiorul altor cuvinte: substr_count("mere merele", "mere") dă 2. Pentru cuvinte întregi folosește preg_match_all('/\bmere\b/', ...).

Comenzi înrudite

  • str_word_count: Numără cuvintele dintr-un text sau le returnează într-un tablou.
  • preg_match_all: Găsește toate potrivirile unei expresii regulate într-un text și le pune într-un tablou.
  • strpos: Găsește poziția primei apariții a unui text în alt text.