Código de PHP - Eliminar los espacios al inicio de cada linea manteniendo la proporción

Imágen de perfil
Val: 418
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Eliminar los espacios al inicio de cada linea manteniendo la proporcióngráfica de visualizaciones


PHP

Publicado el 22 de Diciembre del 2019 por Kata
369 visualizaciones desde el 22 de Diciembre del 2019
Función que elimine todos los espacios al inicio de la cadena manteniendo la proporción. Buscara el mínimo de espacios al inicio de la cadena y eliminara esa cantidad en todas las lineas.

1
2
3
4
5
$string="     El\n  sol\n   brilla";
removeSpacePrevLines($string); // "   El\nsol\n brilla";
 
$string="  El\n   sol\n  brilla";
removeSpacePrevLines($string); // "El\n sol\nbrilla";

1

Publicado el 22 de Diciembre del 2019gráfica de visualizaciones de la versión: 1
370 visualizaciones desde el 22 de Diciembre del 2019
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
32
33
34
35
36
37
/**
 * Function to remove the same spaces in the start text for any line.
 * Remove the minum number of spaces found in any line.
 *
 * Sample:
 * "   the\n  person" return " the\nperson"
 *
 * @param string $string - string to remove espaces before text
 *
 * @return string
 */
function removeSpacePrevLines($string)
{
    $arr=explode("\n", $string);
    $min=9223372036854775807;
 
    // find the minimum spaces between from start and text of all lines
    $spaceToRemove=array_reduce(
        $arr,
        function($acum, $el) {
            $space=strlen(rtrim($el))-strlen(trim($el));
            if ($space<$acum) {
                return $space;
            }
            return $acum;
        },
        $min
    );
 
    // remove the spaces
    $arr=array_map(
        function ($el) use ($spaceToRemove) {
            return substr($el, $spaceToRemove);
        }, $arr
    );
    return implode("\n", $arr);
}



Comentarios sobre la versión: 1 (0)


No hay comentarios
 

Comentar la versión: 1

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/s5751