Category Archives: PHP

php

How to disable notice and warning in PHP.ini file

Several times, I have  some warnings or Notices from my web php apps then I find a solution to fix this issue.

Sometime if you are working on some php code and fed up of Warnings or Notices in the browser then easy way out is to disable the settings in PHP.ini file. This is a configuration file which is loaded each time you start your PHP+Apache. It was doing everything it was supposed to but at the same time it was throwing errors and warning which doesn’t make sense and were harmful for the application.

Here is the method to change the settings in PHP.ini file:

Open PH.ini file.

In this file search for the phrase “ error_reporting = E_ALL” ,[without inverted commas]

Here replace this with “error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING “

(Show all errors, except for notices and coding standards warnings)

Make sure you change the real enabled part of this , there are certain other examples given in the file.

Restart your PHP + Apache

Now, no warnings and messages will appear in the browser.

via > zoomtemplate

Obtener todas las variables GET y POST para un PHP

Algunas veces necesitamos usar las variables que nos llegan por GET o POST y necesitamos listarlas todas.

 PHP | 
 
 copy code |
?

  1. <?
  2. /***VARIABLES POR GET ***/
  3. $numero = count($_GET);
  4. $tags = array_keys($_GET);// obtiene los nombres de las varibles
  5. $valores = array_values($_GET);// obtiene los valores de las varibles
  6. // crea las variables y les asigna el valor
  7. for($i=0;$i<$numero;$i++){
  8. $$tags[$i]=$valores[$i];
  9. }
  10. /***VARIABLES POR POST ***/
  11. $numero2 = count($_POST);
  12. $tags2 = array_keys($_POST); // obtiene los nombres de las varibles
  13. $valores2 = array_values($_POST);// obtiene los valores de las varibles
  14. // crea las variables y les asigna el valor
  15. for($i=0;$i<$numero2;$i++){
  16. $$tags2[$i]=$valores2[$i];
  17. }
  18. /*
  19. ahora solo hay que llamar las variables por su nombre
  20. ej: http://misitio.com/estearchivo.php?usuario=cristalab&password=sangre
  21. para verlas solo pones la variable por su nombre
  22. echo "nombre de usuario: ".$usuario."<br>
  23. password: ".$password;
  24. en vez de usar $_GET['usuario'] y $_GET['password']
  25. */
  26. ?>

VIA>>

PHP: sumar/restar días a una fecha

Ejemplo para añadir o sumar un número determinado de días a una fecha en php. Muy fácil haciendo uso de la función strtotime de php.

En el siguiente ejemplo vamos a sumar 2 días a la fecha actual:

 PHP | 
 
 copy code |
?

  1. $fecha = date('Y-m-j');
  2. $nuevafecha = strtotime ( '+2 day' , strtotime ( $fecha ) ) ;
  3. $nuevafecha = date ( 'Y-m-j' , $nuevafecha );
  4. echo $nuevafecha;

 

Para restar días a una fecha seguimos el mismo proceso…, solo que cambiando el operador ‘+’ por el ‘-’.

Habilitar socket “ssl” para envió de correos desde php y wp

has tenido problemas el enviar correos desde tu serivodr local? algo parecido a esto:

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://www.my.site.com:443 (Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?)

bueno esto ocurre por que tenemos php_openssl.dll des-habilitado para poderlo habilitar y poder enviar correos necesitamos hacer lo siguiente:

1- Checamos nuestro phpinfo(); para saber la ubicación dentro de nuestro servidor del php.ini

2- ya teniendo la ubicación, lo abrimos y buscamos la siguiente linea:   ;extension=php_openssl.dll

3- quitamos el ‘;’ de principio de linea, guardamos y cerramos

4- ahora solo nos resta reiniciar el servicio de apache

lo siguiente seria configurar el archivo de envió de e-mail o en su defecto el plugin de wp que utilizaremos para el direccionamiento smtp.

 

Enlaces permanentes en servidor local

En ocasiones para dejar nuestras instalaciones de wp bien configuradas es necesario que en nuestro servidor local se configuren los enlaces permanentes  pero muchos nos encontramos con la sorpresa que cuando ya los hemos configurado nos arroja un error 404 “Pagina no encontrada”.

Para que te funcionen los permalinks o enlaces permaneces hay que hacer una pequeña modificación en el archivo http.conf del apache. Lo encontramos en: apache\conf\

A este archivo hay que hacerle las siguientes modificaciones:

 Apache configuration | 
 
 copy code |
?

  1. 1 - Buscar la frase:
  2. #LoadModule rewrite_module modules/mod_rewrite.so
  3. 2 - Quitarle el simbolo de numeral, de forma que queda así:
  4. LoadModule rewrite_module modules/mod_rewrite.so
  5. 3 - Buscar la palabra AllowOverride dentro del siguiente contexto (está en más sitios) y dejarlo tal como esta a continuación (se cambia None por All):
  6. # AllowOverride controls what directives may be placed in .htaccess files.
  7. # It can be "All", "None", or any combination of the keywords:
  8. # Options FileInfo AuthConfig Limit
  9. #
  10. AllowOverride All
  11. #
  12. # Controls who can get stuff from this server.
  13. #
  14. Order allow,deny
  15. Allow from all

4 – Reiniciamos el servicio Apache y ya funcionarán los enlaces permanentes

Suerte!

Añadir soporte para menús a un tema de wp

El tema actual no soporta menús de forma nativa, pero puedes usar el widget “Menús personalizados” para añadir los menús que has creado a la barra lateral de tu tema.

The current theme does not natively support menus, but you can use the “Custom Menu” widget to add any menus you create here to the theme’s sidebar.

Suele ser un mensaje que nos aparece al tratar de utilizar las funcionalidades de  menús personalizados

Para incorporar el soporte tenemos que insertar en nuestro archivo functions.php el siguiente código  en el que configuramos 2 menús loq ue podemos llamar de la manera que queramos

 PHP | 
 
 copy code |
?

  1. add_action('init','register_my_menus');
  2. function register_my_menus() {
  3. register_nav_menus(
  4. array(
  5. 'primary'=>__('Principal'),
  6. 'secondary'=>__('Secundario')
  7. )
  8. );
  9. }

Solo nos queda hacer la llamada desde nuestro tema

 PHP | 
 
 copy code |
?

  1. <?php wp_nav_menu(array('theme_location' =â>'primary')); ?>
  2. //y para el secundario:
  3. <?php wp_nav_menu(array('theme_location' =â>'secondary')); ?>

y de esta manera quedaría incorporado el soporte a menús.

Obtener la primer imagen de un post

Muchos de los clientes que tenemos como desarrolladores aveces piden funcionalidad que tenemos que crear y que al paso del tiempo nos deja enseñanzas de como resolver ciertos requerimientos, pus este es uno de ellos.

Tenia la necesidad de traer la primer imagen dentro del contenido del post, no la imagen destacada y esta es la solución que encontré:

Primero nos hacemos la función para detectar y traer la imagen, en caso de no tener, llamamos a una imagen predeterminada

 PHP | 
 
 copy code |
?

  1. function catch_that_image() {
  2.   global $post, $posts;
  3.   $first_img = '';
  4.   ob_start();
  5.   ob_end_clean();
  6.   $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  7.   $first_img = $matches [1] [0];
  8.   if(empty($first_img)){ //Defines a default image
  9.     $first_img = "/images/default.jpg";
  10.   }
  11.   return $first_img;
  12. }

Y por ultimo hacemos la llamada a nuestra funcion

 PHP | 
 
 copy code |
?

  1. catch_that_image()

Saludos!!

Escribir en archivos de texto con PHP

Ya saben, de esas veces que estas en algo y necesitas ver de alguna forma la salida de una función  crear un log o que se yo…

 PHP | 
 
 copy code |
?

  1. $fp = fopen("ejemplo.txt","a");
  2. fwrite($fp, "Nombre: $nombre \t $texto" . PHP_EOL);
  3. fclose($fp);

  • ejemplo.txt → Es el nombre del archivo en el que vamos a escribir, tendremos que crearlo y subirlo al servidor en la carpeta correspondiente. Si vamos a guardar información privada en ese archivo, lo mejor sería ponerle un nombre en forma de clave. Aunque una manera mucho más elegante deproteger el archivo sería usando .htaccess, pero de eso hablaremos en otro post más adelante.
  • a → Indica que el texto se va añadir al final del archivo, en lugar de sustituir su contenido.
  • $nombre$texto → Son variables que hemos usado en el código de nuestro archivo .php o que hemos recogido mediante un formulario web.
  • \t → Tabulador (nos puede servir para ordenar los datos en columnas).
  • . → Concatenar cadenas de texto.
  • PHP_EOL → Salto de línea en PHP.

VIA>>

Modo mantenimiento rápido, sin plugin

Yo creo que está de más instalar un plugin solo para poner tu sitio en modo de mantenimiento durante unos momentos, digamos que para realizar una actualización menor o cosas así ¿no te parece?.

Además, ¿quien no ha sufrido algún problema tras una actualización con los plugins de mantenimiento?. Pues eso …

Así que si quieres poner tu sitio en reposo un rato puedes añadir momentáneamente este código al fichero functions.php de tu tema activo:

 PHP | 
 
 copy code |
?

  1. function wpr_maintenace_mode() {
  2.     if ( !current_user_can( 'edit_themes' ) || !is_user_logged_in() ) {
  3.         die('Estamos de pruebas, no tardes en volver que enseguida terminamos.');
  4.     }
  5. }
  6. add_action('get_header', 'wpr_maintenace_mode');

Eso si, acuérdate de quitar el código una vez hayas terminado.

Sacado de aqui >>

Menús personalizados en WP

Una de las nuevas características de WordPress 3.0 es la creación de menús personalizados. Hasta ahora los usuarios tenían que hacer complicadas modificaciones en el código de sus plantillas o themes si querían añadir otros enlaces en el menú de navegación.

WordPress permitía mostrar solamente las páginas o solamente las categorías del blog pero no era posible mezclar ambas en el mismo menú. Con la nueva función wp_nav_menu() podemos escoger las páginas, las categorías y los enlaces (externos o internos) que deseemos mostrar en el mismo menú.

Está selección la podemos hacer desde el propio DashBoard o Backend, en Appearance – Menus, y podemos crear tantos menús como queramos. Desde la pestaña derecha le asignamos un nombre al menú y seleccionamos las categorías y páginas que deseemos mostrar en el menú marcándolas y pulsando el botón Add to Menu. Así como los enlaces que teclearemos en la ventana Custom links y después añadiremos al menú pulsando el botón Add to Menu.

Inicialmente si el theme no viene preparado, WordPress 3.0 nos permite ubicar el menú con un widget en el sidebar verticalmente. Aunque lo suyo es situarlo horizontalmente en la parte superior a continuación de la cabecera del theme. Para que una plantilla pueda hacer uso de esta posibilidad debe contener la función wp_nav_menu() en el archivo header.php.

WordPress indica que el theme no está preparado para el uso de menús con este mensaje.

Normalmente las plantillas hacen uso de las funciones wp_page_menu() o wp_lists_page() para crear un menú con las páginas del blog. Si sustituímos ese código por;

 PHP | 
 
 copy code |
?

  1. <?php wp_nav_menu( array( 'container_class' => 'menu-header',
  2. 'theme_location' => 'primary' ) );
  3. ?>

estaremos en disposición de usar el menú que configuremos en el DashBoard.

Los parámetros que se pasan a la función son; ‘container_class’ => ‘menu-header’, para decirle que aplique los estilos de la clase “menu-header” contenidos en el archivo style.css y ‘theme_location’ => ‘primary’ que le indica que es el primero de nuestros menús. Por supuesto, puedes usar otro nombre para container_class siempre que definas sus propiedades en la hoja de estilos style.css o incluso no usar ninguno.

Si el menú falla o no se encuentra, se usará la función wp_page_menu() que mostrará un menú sólo con las páginas.

Para mostrar un segundo menú se procede de la misma manera pero indicándo la palabra secondary:

 PHP | 
 
 copy code |
?

  1. <?php wp_nav_menu( array( 'container_class' => 'menu-header',
  2. 'theme_location' => 'secondary' ) );
  3. ?>

Lo visto anteriormente se refiere a la ubicación y la elección de los menús en las distintas zonas de nuestro theme. Es decir, no siempre podemos necesitar un sólo menú superior o que éste aparezca en la página principal, podríamos hacer uso del menú que nos interese.

Pero para poder hacer uso de los menús tenemos que decirle a WordPress cuál es cada uno y así nos permita seleccionarlos y configurarlos desde el DashBoard. Eso lo hacemos en el archivo functions.php. Para el caso de dos menús:

 PHP | 
 
 copy code |
?

  1. register_nav_menus( array (
  2. 'primary' => __( 'Navegacion Principal', 'tu_theme' ),
  3. 'secondary'=>__( 'Navegacion Secundaria', 'tu_theme' )));

Este será el resultado en la ventana de configuración de menús.

Via: Enraladas.