Función strpos
La función strpos devuelve la posición
de la primera ocurrencia de una subcadena en otra cadena
o false si la subcadena no se encuentra.
El primer parámetro de la función es la cadena
en la que se realiza la búsqueda, el segundo parámetro
- la subcadena que se debe buscar.
Por defecto, la función busca desde el principio de la cadena hasta la primera coincidencia. El inicio de la búsqueda se puede ajustar con un tercer parámetro opcional - si se especifica, la búsqueda no comenzará desde el principio de la cadena, sino desde la posición indicada.
También existe la función stripos, que
hace lo mismo, pero sin distinguir entre mayúsculas y minúsculas.
Sintaxis
strpos(string $haystack, string $needle, int $offset = 0): int|false
Ejemplo
En este ejemplo, la función devolverá la posición del primer
carácter 'c'. Ocupa la posición 2,
ya que el conteo comienza desde 0:
<?php
echo strpos('abcde abcde', 'c');
?>
Resultado de la ejecución del código:
2
Ejemplo
En este ejemplo, se especifica el tercer parámetro y
por lo tanto la búsqueda comenzará desde la tercera posición,
en este caso la función encontrará el segundo carácter
'c' y mostrará su posición - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Resultado de la ejecución del código:
8
Ejemplo
Si la subcadena no se encuentra, la función
devolverá false. Si la cadena está
al principio, la función devolverá 0.
Esto puede ser un problema al comparar
usando la forma corta de condición:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Resultado de la ejecución del código (no es lo que esperábamos):
'---'
Ejemplo
Realicemos la comprobación correcta del inicio de la cadena:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Resultado de la ejecución del código:
'+++'
Véase también
-
la función
strrpos,
que devuelve la posición de la última ocurrencia de una subcadena -
la función
str_contains,
que comprueba la ocurrencia de un carácter en una cadena -
la función
str_starts_with,
que comprueba el inicio de una cadena -
la función
str_ends_with,
que comprueba el final de una cadena -
la función
array_search,
que realiza una búsqueda en un array