
Una de las mejores cosas de PHP es el hecho de que tiene funciones integradas para cualquier cosa. Una cosa realmente interesante es intentar unir estas funciones para crear nuevas funciones interesantes. Si hay funciones en PHP que realmente le gustan y desea ampliarlas, por asà decirlo, puede hacerlo creando las suyas propias. En este episodio, veremos cómo hacerlo. Es una excelente manera de aprender a piratear. Vamos a echar un vistazo a preg_match_all
, array_count_values
y arsort
, para crear un nuevo y temible función llamada preg_count_sort . Vamos a ver.
Las funciones nativas
En primer lugar, echaremos un vistazo rĆ”pido a las funciones nativas de PHP que probaremos aquĆ.
preg_match_all
Esta función acepta un patrón de expresión regular, un sujeto contra el que comparar y el nombre de una variable que contendrÔ una matriz de coincidencias.
array_count_values
Esta función toma una matriz como entrada, luego cuenta la cantidad de veces que ocurre cada valor en la matriz proporcionada. Luego crea una nueva matriz, siendo las claves de la nueva matriz los valores originales, y los valores ahora contienen un recuento de cuÔntas veces apareció el valor original en la matriz original.
arsort
Hay una gran cantidad de funciones de matriz en PHP para que pueda encontrar lo que necesite para ordenar. Este ordena la matriz proporcionada en orden inverso y mantiene intactas las claves originales, que necesitamos para nuestra pequeƱa aplicación aquĆ.
La función de las funciones
Ahora veremos cómo combinar las tres funciones que mencionamos aquà en una única función interesante. Vamos a llamarlo, la función preg_count_sort .
preg_count_sort
Aquà estÔ el código fuente de la función.
Hablemos de cómo funciona. En primer lugar, simplemente definimos la función usando la function
palabra clave seguida del nombre de la función que deseamos declarar. Tenga en cuenta que esta función toma a pattern
, que serÔ una expresión regular, y a subject
, que serĆ”n los datos contra los cuales se ejecutarĆ” la expresión regular. A continuación, abrimos una etiqueta de tabla, ya que vamos a poner los resultados de nuestra función en una buena salida tabular. En la siguiente lĆnea utilizamos la primera de las funciones originales de PHP, preg_match_all. Esta función toma el patrón de expresión regular como el primer parĆ”metro, el sujeto con el que comparar como el segundo y el nombre de la matriz para contener cualquier coincidencia como el tercero. Tenga en cuenta que incluimos los delimitadores iniciales y finales para el patrón al incluir la barra diagonal al principio y al final del patrón. De esta manera, cuando proporcionamos la expresión regular en nuestra aplicación, no tenemos que proporcionar tambiĆ©n los delimitadores iniciales y finales. array_count_values es la segunda función php nativa que se utiliza. Esto cuenta el nĆŗmero de veces que ocurrió cada coincidencia en la matriz de coincidencias que llenó la función preg_match_all. Una vez que tenemos el recuento de coincidencias, usamos la tercera función nativa de PHP arsort, para ordenar los recuentos de mayor a menor nĆŗmero. El bucle foreach simplemente recorre todas las coincidencias y las coloca en filas y celdas dentro de la tabla general. Por Ćŗltimo, seguimos adelante y cerramos la etiqueta de la tabla.
Ponga la nueva función a utilizar
Usaremos este código en una pequeña aplicación de una sola pÔgina y lo probaremos. VeÔmoslo ahora.
fuente preg_count_sort.php
Entonces, ¿quĆ© hace esta pequeƱa aplicación por nosotros? Bueno, podemos probarlo. Definamos nuestro Asunto y patrón, luego ejecutemos el programa.
Nuestro tema serĆ” esta cadena de texto: “Si te gustan los productos de Apple, es posible que tengas un iPad, iPhone o incluso un iMac. Si el MacBook Pro no es lo tuyo, puede que te guste el Lenovo Carbon X1. El iMac de Ćŗltima generación es fantĆ”stico, sin embargo, el iMac de hace una dĆ©cada que estĆ” en mi escritorio es mĆ”s un artĆculo de coleccionista en este momento. AĆŗn no es necesario un nuevo iPad, la versión original con pantalla retina sigue funcionando perfectamente ".
Nuestro patrón serÔ esta expresión: i[A-Z][a-z]*
AquĆ estĆ” el resultado cuando ejecutamos el programa
¡Muy genial! Cuando ejecutamos la función, encontramos que en el tema iMac ocurrió 3 veces, iPad ocurrió dos veces y iPhone ocurrió una vez. Por supuesto, este es un ejemplo sin sentido, sin embargo, si repasas tus expresiones regulares y proporcionas un tema largo y significativo, puedes descubrir todo tipo de datos interesantes.
Conclusión
Este episodio rÔpido echó un vistazo a la combinación de funciones PHP para crear la suya. Si usa su imaginación, puede adoptar este enfoque con cualquier número de funciones que acepten y generen datos para crear sus propias soluciones personalizadas.
No hay comentarios.:
Publicar un comentario