Código de PHP - Determinar si una posición dentro de una cadena esta entre las etiquetas <span>

Imágen de perfil
Val: 1.802
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Determinar si una posición dentro de una cadena esta entre las etiquetas <span>gráfica de visualizaciones


PHP

Publicado el 14 de Enero del 2020 por joel
419 visualizaciones desde el 14 de Enero del 2020
Función que determina si una posición dada dentro de una cadena se encuentra entre los tags <span..> y </span>.

1
2
3
4
5
6
7
8
9
10
11
$cadena="";
echo positionIsBetweenSpan($cadena, 1); // false
$cadena="la casa azul";
echo positionIsBetweenSpan($cadena, 5); // false
$cadena="la <span class='b'>casa azul <span class='c'>esta</span> entre dos casas</span> rojas <span> de la calle";
echo positionIsBetweenSpan($cadena, 1); // false
echo positionIsBetweenSpan($cadena, 25); // true
echo positionIsBetweenSpan($cadena, 48); // true
echo positionIsBetweenSpan($cadena, 70); // true
echo positionIsBetweenSpan($cadena, 85); // false
echo positionIsBetweenSpan($cadena, 100); // true

Versión 1.0

Publicado el 14 de Enero del 2020gráfica de visualizaciones de la versión: Versión 1.0
419 visualizaciones desde el 14 de Enero del 2020
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
 * Function to define if position of string is between <span...></span>
 *
 * @param string  $string
 * @param integer $pos
 *
 * @return boolean
 */
function positionIsBetweenSpan($string, $pos)
{
    $find=preg_match_all('/<span.*?>|<\/span>/', $string, $matches, PREG_OFFSET_CAPTURE);
    $result=[""];
    foreach ($matches[0] as $el) {
        if ($el[1]>=$pos) {
            break;
        }
        if (substr($el[0], 0, 2)=="<s") { // open
            array_push($result, "<");
        } else if ($result==[]) {
            array_push($result, ">");
        } else { // close
            if ($result[count($result)-1]=="<") {
                array_pop($result);
            } else {
                array_push($result, ">");
            }
        }
    }
    $last=array_pop($result);
    return ($last=="<") ? true : false;
}



Comentarios sobre la versión: Versión 1.0 (0)


No hay comentarios
 

Comentar la versión: Versión 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5814