From 362a553ce66019e6a9d122b98f68a1aba7fdec74 Mon Sep 17 00:00:00 2001 From: Louis-Arnaud Date: Tue, 15 Sep 2026 09:29:02 +0200 Subject: [PATCH] [Sync-En] strpos, mb_strpos: document the empty needle and character positions --- reference/mbstring/functions/mb-strpos.xml | 49 +++++++++++++++++----- reference/strings/functions/strpos.xml | 21 ++++++---- 2 files changed, 52 insertions(+), 18 deletions(-) diff --git a/reference/mbstring/functions/mb-strpos.xml b/reference/mbstring/functions/mb-strpos.xml index eea2afa8c7..1d4c60b3c6 100644 --- a/reference/mbstring/functions/mb-strpos.xml +++ b/reference/mbstring/functions/mb-strpos.xml @@ -1,11 +1,11 @@ - + mb_strpos - Localiza la primera ocurrencia de un carácter en una cadena + Busca la posición de la primera ocurrencia de un string en otro string @@ -56,10 +56,10 @@ offset - - La posición de inicio de la búsqueda. Si se omite, se utilizará cero. + + La posición de inicio de la búsqueda, en caracteres. Si se omite, se utilizará cero. Una posición negativa se cuenta desde el final de la &string;. - + @@ -74,12 +74,12 @@ &reftitle.returnvalues; - - Devuelve la posición numérica de - la primera ocurrencia del carácter needle en la - cadena haystack. Si needle no se - encuentra, mb_strpos devuelve &false;. - + + Devuelve la posición en caracteres (no en bytes) de la primera ocurrencia + de needle en el string + haystack, contando desde 0. + Devuelve &false; si no se encuentra needle. + @@ -119,10 +119,37 @@ + + &reftitle.examples; + + <function>mb_strpos</function> devuelve una posición en caracteres, no en bytes + + +]]> + + &example.outputs; + + + + + + &reftitle.seealso; + mb_strrpos + mb_stripos mb_internal_encoding strpos diff --git a/reference/strings/functions/strpos.xml b/reference/strings/functions/strpos.xml index 498332e5a7..984e3efade 100644 --- a/reference/strings/functions/strpos.xml +++ b/reference/strings/functions/strpos.xml @@ -1,5 +1,5 @@ - + @@ -37,9 +37,15 @@ needle - + El string a buscar. - + + + Pasar un string vacío como needle coincide en + todas las posiciones. strpos devuelve + offset si se especifica, o + 0 en caso contrario. + &strings.parameter.needle.non-string; @@ -107,7 +113,7 @@ 7.3.0 - Pasar un &integer; como before_needle ha sido + Pasar un &integer; como needle ha sido declarado obsoleto. @@ -134,7 +140,7 @@ $mystring = 'abc'; $findme = 'a'; $pos = strpos($mystring, $findme); -// Note nuestra utilización de ===. == no funcionaría como esperado +// Note nuestra utilización de ===. == no funcionaría como se esperaba // ya que la posición de 'a' es el carácter 0 (primero). if ($pos === false) { echo "El string '$findme' no se encuentra en el string '$mystring'"; @@ -156,8 +162,9 @@ $mystring = 'abc'; $findme = 'a'; $pos = strpos($mystring, $findme); -// Note nuestra utilización de !==. != no funcionaría como esperado -// ya que la posición de 'a' es el carácter 0 (primero). +// También se puede utilizar el operador !==. != no funcionaría como se esperaba +// ya que la posición de 'a' es 0. La expresión (0 != false) se evalúa +// como false. if ($pos !== false) { echo "El string '$findme' ha sido encontrado en el string '$mystring'"; echo " y comienza en la posición $pos";