Cómo pasar un número determinado de variables a una función en PHP

Hoy vamos a ver cómo pasar un número determinado de variables a una función en PHP, para hacer esto, usaremos la función call_user_func_array, la cual nos ayudará a llamar a una función pasando-le un determinado número de variables.

Puede que sea una situación extraña, pero por tal situación, siempre es complicado encontrar una solución, así que aquí os la pongo:

Aquí lo que hacemos es pasarle a la función test, las variables que tenemos dentro del array $params, de esta forma podremos pasar a la función las variables que nos hagan falta, sin tener que declararlas todas en la declaración de la función.ç

Esto lo que acabará mostrando será lo siguiente:

Le hemos pasado un total de: 3 variables a la función.
Que son las siguientes:
array(3) { [0]=> int(23) [1]=> string(11) "hello world" [2]=> string(29) "la página de oyagum.com mola" }

Con veis es bastante fácil pasarle las variables que necesitemos a la función.

En el caso de que en vez de tenerlo así, lo tenéis con clases, como por ejemplo $foo->bar no hay problema es tan simple como hacer lo siguiente:

Simplemente a la función call_user_func_array le pasamos como primera variable un array.

Y en el primer valor del array, tendremos la variable de la clase que queremos utilizar, en este caso $foo.

Como segundo valor le vamos a pasar un string, el cual será el nombre del método que queremos ejecutar, el cual en este caso es “bar”.

Y entonces esto lo que hace es llamar a $foo->bar() pasando las 3 variables que ya hemos visto antes, tan sencillo como eso.

Espero que os haya servido lo explicado.

Y recordad! No olvidéis comentar! En vuestro código y en el Blog!

Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this

Buscar una cadena de texto dentro de un array en PHP

Hoy vamos a ver, como buscar una cadena de texto dentro de un array, utilizando diferentes funciones de PHP.

Tenemos varias formas de hacerlo y que cada una nos devuelve un resultado distinto, en las primeras opciones buscamos el valor integro en los campos, y en la última opción, buscamos el termino en el array con una expresión regular.

Vamos a ver como se hace en cada caso y que es lo que devuelve cada caso.

Buscar una cadena en el array  usando array_search

En este caso, usaremos la función array_search la cual nos buscará dentro del array para ver si dentro de los campos del array se encuentra el término que buscamos.

Aquí vemos que nos mostrará que se ha encontrado el termino “Zapatillas de tenis” en la posición 1, si hubiera más de un resultado de dicha búsqueda, solo nos mostraría el primero que encontrase.

Así que si nos interesa encontrar una coincidencia y devolver la primera que encontremos, esta opción nos serviría totalmente.

Buscar una cadena en el array  usando in_array

En esta opción, lo que vamos a hacer es buscar dentro de los campos del array, y dicha función lo que hace es devolvernos si existe o no dentro del array, simplemente eso.

Aquí no obtendremos la posición de donde se encuentra la cadena que hemos buscado, pero a lo mejor con un simple true o false nos sirva para hacer funcionar nuestro código.

Buscar una cadena en el array, usando array_filters

Los casos anteriores nos pueden servir para la mayoría de búsquedas que necesitemos. Pero ¿qué ocurre si queremos buscar en el array todos los campos que contengan un término en concreto? Que ninguna de las anteriores opciones nos sirve para lo que queremos, y es por eso que usaremos la función array_filters de PHP, con ella podremos conseguir añadir una función que nos permita hacer una búsqueda, para encontrar nuestro texto dentro de los campos del array, sin que tenga que ser exactamente el mismo que el del campo.

Como veis aquí lo que hemos hecho es tirar de la función stristr, que lo que hace es buscarnos, de forma insensible a mayúsculas y minúsculas, si el texto que le hemos dicho existe en el campo del array.

También podríamos usar si nos hiciera falta expresiones regulares, usando por ejemplo preg_match con una función como esta:

Que simplemente hace lo que hace stristr, pero usando una función más potente.

Pero al final, cada cual debe buscar lo que necesita, y en nuestro caso con la función stristr, hemos tenido suficiente.

Al final lo que nos devuelve el array_filter, es un array con el valor de los campos que coinciden, aquí hemos cogido y los hemos listado, pero vosotros luego podéis hacer lo que queráis con ellos.

Espero que os haya sido de utilidad.

Y recordad! No olvidéis comentar! En vuestro código y en el Blog!

Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this

¿Cómo forzar un git pull?

Hoy os traigo una solución a cuando estamos trabajando con Git flow, o simplemente con git, y no nos damos cuenta que los cambios lo estamos realizando en la rama master en lugar de la rama donde tendríamos que estar. O simplemente la hemos liado parda en la rama master y queremos dejarlo todo como estaba al principio de meter la pata.

Así que sin más dilación voy a contaros cómo forzar un git pull para dejar nuestra rama master a como estaba antes de tocar el código, al final añado como conservar lo que hay en master en otra rama, para así no perder nada de lo realizado y pasarlo a la rama que toca.

Primero de todo usaremos el siguiente comando git:

Con este comando, nos bajaremos lo último que haya, de todas las ramas, pero sin que nos haga hacer merge ni hacer un rebase de nada.

En caso de que no queramos obtenerlo todo, también podríamos ejecutar esto:

Así solo obtendríamos lo que hay en la rama origin/master y no obtenerlo todo, que a veces depende que proyecto… puede ralentizar la cosa.

Y ahora simplemente tenemos que hacer lo siguiente:

O en el caso de que queramos hacer lo propio con una rama ejecutaremos lo siguiente:

Así con el git reset, lo que hacemos es resetear la rama master a lo que hemos cogido antes con el git –fetch all. La opción de –hard, nos cambia todos los archivos que tenemos por los archivos de origin/master y así nuestro repositorio se quedará como estaba antes de hacer lo que hubiéramos hecho.

También podríamos guardar los cambios realizados en una nueva rama, antes de forzar el pull, por si no estamos seguros de si queremos perder nuestros datos, o simplemente nos hemos equivocado de rama a la hora de aplicar cambios.

Como veis aquí guardamos primero en una rama, todos los cambios realizados en master y de esta forma podemos resetear la rama master, forzar el pull, y así tener en una rama los cambios realizados, y el master como el de origin/master.

Espero que os haya servido y tengáis bien organizadas vuestras ramas, recordad que git es muy potente, pero que al ser tan potente hay que ir con mucho cuidado.

Y recordad de comentar siempre, en vuestro código y en el blog 😉

Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this

Los mejores plugins de WordPress para mi blog (por ahora)

Mejores plugins Wordpress para mi Blog

Hoy voy a hablaros de los que considero los mejores plugins de WordPress para mi blog, al menos por ahora.

Hace bien poco decidí retomar el tema de blog, pero está vez con un enfoque distinto, un enfoque más comercial, por así decirlo.

Anteriormente en oyagum.com han existido muchos blogs y en todos ellos fracasé, intentaba escribir cosas de mi día a día, mis enfados, intentaba aportar algo, pero no acaba de aportar, ni de realizarme y al final los abandonaba.

Pero de hace un tiempo aquí, me he empapado un montón de sobre SEO, y la verdad, es que he encontrado que es un tema que me apasiona y que puedo llegar a compaginarlo con mi carrera de programador.

Y tenía ganas de probar el SEO en algún proyecto, y como por fuerza mayor, tuve que cambiar de trabajo y pasé de un trabajo de Web Developer a algo más Backend Developer, ya no podía poner en práctica mis conocimientos de SEO.

Así que al final, decidí escribir un blog sobre programación, web y SEO, aplicando todo lo que se hasta ahora. Y lo primero que tocaba hacer era instalar WordPress y lo más tedioso de todo, buscar en Google los mejores plugins para WordPressy después de leer miles de webs y miles de recomendaciones, y de probar muchos plugins, me quede con los que más se adecuaban a lo que andaba yo buscando, o algunos extra que busqué a medida que iba avanzando con el Blog.

Así que ahora os pondré una lista de los plugins que yo estoy utilizando, con lo cual seguramente esta lista se vaya modificando con el tiempo, con algunos plugins nuevos, unos nuevos que sustituirán a otros, y nuevos que iré necesitando, con el paso del tiempo.

Así que como veis será una entrada que iré actualizando con el tiempo, pero por el momento podéis ver, los plugins que tengo actualmente instalados, separados en grupos.

Sigue leyendo Los mejores plugins de WordPress para mi blog (por ahora)

Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this

Redirecciones 301 y 302 que son y como configurarlas

Redirección 301, 302 con htaccess

Empezando a darle caña al blog, escribiendo y puliendo detalles de SEO, pues me he encontrado con varias cosas, buscar plugins interesantes para WordPress, hacer mejoras en la nomenclatura de la web, lo cual nos lleva al post de hoy, las redirecciones 301 y 302.

Al principio de crear el blog, dejé la palabra “category” para marcar las categorías, pero no me acaba de convencer, pero como no se me ocurría nada mejor, pues así lo deje, y al poco tiempo lo cambie por “sobre” dejando así una estructura de este estilo http://www.oyagum.com/articulos/sobre/seo.

Que a mi parecer está bien enfocado para seo, aunque no creo que sea un termino muy buscado, al menos es una estructura lógica.

El problema ha surgido al cambiar la forma de llamar a las categorías después de ya haber abierto la web al mundo y  a los spiderbots de los buscadores.

Comprobé en Search Console, que Google ya había indexado esas páginas y claro, al cambiarlo por “sobre” las páginas ya indexadas donde aparece “category” en vez de “sobre” darán un error 404, dando mala imagen de la web, como si estuviera descuidada y eso Google lo toma en cuenta, muy en cuenta.

Con lo cual había que poner remedio a esos problemas, y esa solución pasaba por hacer redirecciones 301.

Primero de todo voy a explicaros a los que no lo sepáis, que son las redirecciones 301 o 302 y el archivo .htaccess.

Sigue leyendo Redirecciones 301 y 302 que son y como configurarlas

Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this

Reiniciar auto incremental en MySQL y PostgreSQL

Hoy vamos con un tip rápido, como reiniciar el auto incremental de MySQL o el serial de PostgreSQL, para esos casos en los que has tenido que hacer muchas pruebas en tu local y quieres subirlo luego todo a tu servidor y te encuentras que el auto incremental de tu tabla empieza a contar desde el 31337 y quieres reiniciar el id.

Realmente no ocurre nada, ya que va a seguir funcionando igual tu proyecto, pero ya que lo estás empezando de cero, aunque hayas hecho muchas pruebas, imagino que te gustaría que ese auto incremental, empiece a contar desde 1.

Así que aquí os voy a explicar como hacerlo para MySQL y PostgreSQL, que son las bases de datos que más uso y creo que las más extendidas.

Tenemos dos maneras de hacerlo, la primera que es eliminar toda la tabla y volverla a crear y la segunda, que es básicamente asignándole al auto incremental un valor en concreto, veamos la primera.

Sigue leyendo Reiniciar auto incremental en MySQL y PostgreSQL

Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this

Como saber si un elemento existe con jQuery

A veces nos encontramos con jQuery, que no sabemos si un elemento ha sido creado o no, y si le intentamos atacar directamente, sin que ese elemento exista, nos va a salir un error de Javascript.

Así que para que eso no nos ocurra deberemos comprobar antes si dicho elemento existe y a continuación os pondré varios métodos para comprobarlo.

Comprobar que existe el elemento usando jQuery

Como veis es muy fácil saber si existe o no un elemento HTML con jQuery.

También si nos interesa, podríamos crear una función y así tenerlo de forma más accesible y limpia.

Comprobar que existe el elemento usando una función de jQuery

De esta forma seguiría más el standard PSR-1, el cual se puede aplicar a cualquier entorno de programación.

Por último, voy a explicaros como se podría hacer con JavaScript, puro y duro, que será mucho más rápido, pero nos limita bastante a que solo tiremos de ID, mientras que con jQuery, podemos usar los selectores que nos apetezcan.

Pero como el saber no ocupa lugar, pues os explico como se haría en Javascript para que tengáis el máximo de información disponible.

Comprobar que existe un elemento con un id específico con JavaScript

Seguramente siempre usaremos jQuery para hacer las comprobaciones, pero quizás en algún sitio con esta simple instrucción de JavaScript nos pueda servir, para saber si un elemento con una id específica existe.

Espero que os haya podido servir de ayuda. Y si teneis más dudas sobre jQuery, JavaScript o PHP, no dudeis en comentarmelo.

Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this

Como esconder el email para evitar a los spambots

Hoy vamos a ver como podemos esconder un email  a la vista de todos esos robots de spam que acechan en las esquinas para robarnos nuestra dirección y sacar tajada de ello.

Hay varias técnicas que podemos usar para que los robots no encuentren nuestro email, o como mínimo ponérselo lo más difícil posible.

Ya que cada vez son más listos los bots, tenemos que ser nosotros más listos que ellos, que no se diga que una máquina nos gane.

Hay técnicas más útiles que otras, eso está claro, pero para que podáis elegir, la que más os guste o más rabia os de, os pongo todas las que conozco a continuación:

Sigue leyendo Como esconder el email para evitar a los spambots

Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this

Minificar el código HTML a través de PHP

Llevo un tiempo sobre detrás del mundo SEO y leyendo y aprendiendo muchas cosas, pero hay algo que siempre me parece curioso, la mitad de todos esos grandes del SEO, no tienen sus páginas minificadas, no se si tienen algo en contra de tener sus páginas minificadas o simplemente es que se olvidan a la hora de optimizar sus webs, como por ejemplo ocurre en unareceta.com. Y ahí en ese caso solo deberían instalar un plugin de WordPress.

Entiendo que la mayoría estareis usando WordPress como editor de contenidos, pero si alguien llega más allá de WordPress, espero que este artículo le sirva para relizar la minificación de su web.

Pero bueno, aquí estamos para ayudar a la gente a que optimice al máximo sus páginas y puedan ofrecer mucho mejor rendimiento de cara al usuario y de cara a Google.

Así que paso a explicaros como minificar el código para que ocupe lo mínimo posible, ya vereis que es algo muy fácil y sencillo.

Sigue leyendo Minificar el código HTML a través de PHP

Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this

Agrupar datos mostrando la última fecha

Cuando estamos trabajando, siempre se nos piden muchas consultas, para obtener todos los datos posibles, para poder obtener el máximo de información. Y una de las consultas que se me ha repetido muchas veces es, encontrar el total de pedidos obteniendo la última fecha del pedido y en otros sitios la petición de datos era diferente, pero con el mismo fin, datos agrupados con la fecha más reciente.

Datos de ejemplo

En este ejemplo, vamos a tener dos simples tablas, la tabla clientes, con los datos de los clientes:

id_clientenombreapellidosemail
1AlbertoMartínezoyagum@gmail.com
2JuanLopezjlopez@gmail.com
3MariaSanchezmsanchez@gmail.com
4PedroAlmodovarpalmodovar@gmail.com
5AlbertoMartínezoyagum@gmail.com

 

Y la tabla pedidos con los datos de los pedidos

idfecha_creacionfecha_updateprecio_totalid_persona
12017-02-06 21:28:012017-02-05 21:28:10501
22017-02-05 21:38:482017-02-05 21:38:48464
32017-02-05 21:38:502017-02-05 21:38:501151
42017-02-05 21:38:502017-02-05 21:38:50803
52017-02-05 21:38:502017-02-05 21:38:501353
62017-02-05 21:38:502017-02-05 21:38:50505
72017-02-05 21:38:502017-02-05 21:38:501462
82017-02-05 21:38:502017-02-05 21:38:50791
92017-02-05 21:38:512017-02-05 21:38:51564
102017-02-05 21:38:512017-02-05 21:38:511143
112017-02-05 21:38:512017-02-05 21:38:51915
122017-02-05 21:38:512017-02-05 21:38:511283
132017-02-05 21:38:512017-02-05 21:38:511483
142017-02-05 21:38:522017-02-05 21:38:52844
152017-02-05 21:38:532017-02-05 21:38:531292
162017-02-05 21:38:532017-02-05 21:38:531261
172017-02-05 21:38:532017-02-05 21:38:53904
182017-02-05 21:38:532017-02-05 21:38:531094
192017-02-05 21:38:542017-02-05 21:38:541274
202017-02-05 21:38:542017-02-05 21:38:54783
212017-02-05 21:38:542017-02-05 21:38:541001
222017-02-05 21:38:542017-02-05 21:38:54623
232017-02-05 21:38:542017-02-05 21:38:54433
242017-02-05 21:38:552017-02-05 21:38:551261
252017-02-05 21:38:552017-02-05 21:38:551032

Tengo más datos en la tabla de pedidos, pero es para que os hagáis una idea.

 

La consulta SQL

Y ahora pasaremos a obtener la consulta para conseguir el total de pedidos de los clientes y la fecha de la última vez que compraron

Así que aquí os pongo como sería la consulta SQL:

Resultado

Y este sería el resultado de la consulta.

total_compradoultima_fecha_compranombreapellidosemail
152017-02-06 21:28:01AlbertoMartínezoyagum@gmail.com
162017-02-05 21:39:10JuanLopezjlopez@gmail.com
192017-02-05 21:39:04MariaSanchezmsanchez@gmail.com
202017-02-05 21:39:09PedroAlmodovarpalmodovar@gmail.com
152017-02-05 21:39:09AlbertoMartínezoyagum@gmail.com
Comparte si te ha gustado:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrDigg this