Mostrando entradas con la etiqueta php. Mostrar todas las entradas
Mostrando entradas con la etiqueta php. Mostrar todas las entradas

jueves, 21 de octubre de 2021

Encripta y desencripta datos en PHP

Hoy os comparto una función muy sencilla pero eficaz para encriptar y desencriptar valores con PHP

jueves, 27 de agosto de 2020

Obtener la última parte de una URL con PHP

Es algo muy sencillo y útil, el primer pensamiento que tuve fue trocear la URL por "/" y quedarme con la última parte del array, pero tenemos una forma mucho más fácil, y optimizada

Con tan solo esta linea lo tenemos listo:


echo basename('http://domain.com/artist/song/music-videos/song-title/9393903');

Fuente: stackoverflow 

sábado, 25 de julio de 2020

Acceder a la propiedad de un objeto con caracteres prohibidos en php

acceder a la propiedad de un objeto es muy sencillo todos lo usamos a diario, tan solo necesitamos el objeto, escribir flechita y el nombre de la propiedad.

$results->results->odds

pero que pasa cuando queremos acceder a una propiedad con caracteres prohibidos como puede ser un numero, o un _

martes, 1 de marzo de 2016

"php" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.

Nada mas configurar un entorno para trabajar con PHP es común encontrarnos con errores del tipo:

"php" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.

Para solucionarlo solo deberemos presionar las teclas Win + Pausa, con lo que se nos abrirá la configuración de nuestro PC, si no estamos acostumbrados a estas combinaciones o nuestro portátil no dispone de la tecla Pausa, podemos ir a Mi PC, hacer click derecho sobre el, y dar a propiedades

jueves, 26 de noviembre de 2015

Dar formato a un DateTime en PHP

Dar formato a una fecha no puede ser mas sencillo siempre que usemos un Objeto DateTime.
Podremos tener este objeto recogiendolo directamente de una BBDD en la que el campo en cuestion sea un DateTime, o bien creandolo en PHP del siguiente modo:

$date = new DateTime('2000-01-01');

Una vez tengamos nuestro DateTime creado tan solo deberemos darlo formato del siguiente modo:

jueves, 5 de febrero de 2015

PHP - Deprecated: Function split() is deprecated

En ocasiones, sobre todo aplicaciones antiguas podemos encontrarnos con un Notice de este tipo, o bien que nuestro editor nos muestre un mensaje como el siguiente:

Deprecated: Function split() is deprecated

Y es que si Señores, la archiconocida función Split de PHP que todos hemos usado para cortar cadenas, esta deprecated, por lo que las lineas que tengamos al estilo:

$terminos = split(',', filter_input(INPUT_GET, 'filtro', FILTER_SANITIZE_STRING));

Deberemos cambiarlas por otras como las siguientes

$terminos = explode(',', filter_input(INPUT_GET, 'filtro', FILTER_SANITIZE_STRING));

Espero que os sirva de ayuda, y no echeis mucho de menos a nuestra amiga Split

domingo, 1 de febrero de 2015

PHP - Problemas con los saltos de linea en csv

En ocasiones necesitaremos leer los datos que contiene un CSV, lo que he estado usando siempre había sido algo al estilo.
ini_set('auto_detect_line_endings',TRUE);while (($datos = fgetcsv($gestor, 100000, "\n")) !== FALSE) {//Lo que necesitara,  normalmente parsearlo}
Hace poco me encontré con un error en ese código, al intentar parsear un fichero que venia desde un MAC, el problema esta en que Windows y MAC no tratan igual los saltos de linea, por lo que "\n" no existía en el fichero que me enviaban, la solución es el siguiente código:

domingo, 25 de enero de 2015

PHP - Comprobar si se ha subido cualquier fichero

Hoy os traigo un truco tan sencillo como útil.
En ocasiones al validar un formulario del lado de servidor podemos tener varios input file, y pueden subir ficheros en cualquiera de ellos, si nos es necesario validar que se suban ficheros, pero nos da igual en que input nos lo suban podemos validar todos y cada uno de los input que tengamos, o bien comprobar si nos pasan algún fichero en general para ello:

domingo, 11 de enero de 2015

PHP - Obtener la fecha de un dia de esta semana


Para obtener la fecha de un día de esta semana simplemente necesitamos una de estas funciones, la primera nos calcula el TimeStamp, que si es lo que necesitamos estaría genial, la segunda a raíz del TimeStamp calcula la fecha en el formato solicitado, en el ejemplo en día/mes/año
strtotime('Monday this week');
date("d/m/Y", strtotime('Sunday this week'));

miércoles, 7 de enero de 2015

PHP - Obtener el número de la semana

Buenas a todos, y Feliz año!!!
Hace tiempo que no escribía, la verdad es que entre fiestas, comilonas, y demás compromisos no he sacado mucho tiempo que se diga, pero aquí estoy de nuevo dispuesto a dar guerra.

Vamos al lío, en esta publicación quería contaros como hacer algo muy simple en PHP, aunque no suele hacerse muy a menudo y por eso precisamente viene bien recordarlo.
Obtener el numero de semana del año actual, para ello simplemente deberemos usar la función date() de PHP, pasándole como parámetro el formato de lo que necesitemos, el ejemplo mas utilizado es date("d/m/Y"); para obtener la fecha separada por "/" en formato día / mes /año

En nuestro caso para obtener solo el numero de semana necesitamos date('W')

jueves, 11 de diciembre de 2014

WordPress - Custom Post type

Crear tipos de Posts personalizados en WordPress es muy sencillo, tan solo deberemos incluir el siguiente código dentro de nuestro functions.php o bien desde un plugin.
public static function create_customPost_type() {
        register_post_type('customPost', array(
            'labels' => array(

jueves, 17 de julio de 2014

Symfony - PHP - falta icuuc49.dll

El programa no puede iniciarse por que falta icuuc49.dll en el equipo.
Intente reinstalar el programa para corregir este problema


Este error ocurre al habilitar en el php.ini la extensión intl para solucionarlo deberemos copiar estas librerías en nuestro apache, eso se consigue del siguiente modo:
  1. Nos dirigiremos a nuestro server en mi caso Xampp a su directorio PHP (C:\xammp\PHP) 
  2. Buscaremos 3 archivos icudt49.dll; icuin49.dll; icuuc49.dll 
  3. Los copiaremos (importante copiar, no cortar) a nuestro directorio apache (C:\xammp\apache\bin) 
  4. Por ultimo reiniciaremos nuestro apache 
Y solucionado!!

viernes, 25 de abril de 2014

Tienda en blanco al cambiar de servidor - prestashop

Llevo una temporada migrando una web a otro servidor, hoy estaba con la parte de la tienda, la cual esta montada en Prestashop, he copiado todos los archivos al nuevo server, y la base de datos, pero para mi sorpresa me encontre con que al entrar a la web me carga una pagina en blanco


no puedo entrar ni al administrador, si tecleo la URL obtengo el mismo resultado, rebuscando por hay sugerian:

  • dar permisos a las carpetas
  • borrar carpeta cache
  • me asegurado que en la base de datos apunte al "nuevo dominio"
Pero Sigue sin funcionar

no es cosa del .htaccess ya que lo he renombrado y sigo con el mismo problema

Cambio el valor de:
define('_PS_MODE_DEV_', true);
estaba en false en el archivo config/defines.inc.php

Y me da error:
Fatal error: Uncaught Table '*****_2013.****_shop_url' doesn't exist
Asi que reimportare la base de datos.

Y Solucionado!!!

jueves, 24 de abril de 2014

Fatal error: Uncaught exception 'Mailchimp_ServerError_MethodUnknown' - Mailchimp - PHP

Despues Del error que describo en: http://www.rogamainformatica.es/2014/04/fatal-error-uncaught-exception.html me aparecio este otro:
Fatal error: Uncaught exception 'Mailchimp_ServerError_MethodUnknown' with message 'Unknown method "lists/*******"' in C:\xampp\htdocs\*******\dashboard\mailchimp\src\Mailchimp.php:340 Stack trace: #0 C:\xampp\htdocs\******\dashboard\mailchimp\src\Mailchimp.php(319): Mailchimp->castError(Array) #1 C:\xampp\htdocs\**********\dashboard\test.php(6): Mailchimp->call('lists/********', '') #2 {main} thrown inC:\xampp\htdocs\*******\dashboard\mailchimp\src\Mailchimp.php on line 340

Este ultimo es simplemente por como lo llamamos
estaba usando
$lista = $mailchimp->call('list/list');
print_r($lista);
en vez de
print_r($mailchimp->call('lists/list',''));

Fatal error: Uncaught exception 'Mailchimp_HttpError' - PHP - MailChimp

Hoy he tenido que pelearme con la API de MailChimp, y ... bueno, al menos en lo que se refiere a PHP, no he mirado como esta documentada para otros lenguajes, pero a lo que viene siendo PHP, si no usas algun framework tipo Zend o Simfony en tu proyecto estas un poco vendido, buscate la vida y peleate con el.

Entre otras cosas me encontrado con este error (en un post futuro, explicare como montala en tu proyecto)
Fatal error: Uncaught exception 'Mailchimp_HttpError' with message 'API call to lists/****** failed: SSL certificate problem: unable to get local issuer certificate' in C:\xampp\htdocs\*****\dashboard\mailchimp\src\Mailchimp.php:314 Stack trace: #0 C:\xampp\htdocs\*****\dashboard\test.php(6): Mailchimp->call('lists/*****', '') #1 {main} thrown in C:\xampp\htdocs\******\dashboard\mailchimp\src\Mailchimp.php on line 314
  1. Parece ser que simplemente no tenia certificado mi servidor, la solucion a esto es muy sencilla:
  2. Descargar y guardar en donde tengamos instalado el PHP en nuestro equipo el sigueinte archivo: http://curl.haxx.se/docs/caextract.html en mi caso la ruta es: C:\xampp\php\
  3. Escribir la sigueinte linea al final de nuestro PHP.inicurl.cainfo="C:\xampp\php\cacert.pem"
  4. Reiniciar nuestro apache
Fuente:
http://redwebturtle.blogspot.com.es/2013/09/mailchimp-api-v20-ssl-error-solution.html

martes, 8 de abril de 2014

Warning! Your PHP configuration limits the maximum number of fields allowed in a form - Prestashop

Warning! Your PHP configuration limits the maximum number of fields allowed in a form:
1000 for max_input_vars.
Please ask your hosting provider to increase the this limit to 2481 at least or edit the translation file manually.

Para solucionar este error de nuestro Prestashop deberemos cambiar en el php.ini dicho valor, eso es simplemente abrirlo el cual en nuestro equipo estara ubicado en :
C:\xampp\php

Cambiaremos el 1000 que viene por defecto por el valor que nos da el error u otro superior, finalizaremos
reiniciando apache

Otra opción, si esto no nos funciona, o si no tenemos acceso al php.ini es introducir
php_value max_input_vars 4000
en nuestro .htaccess
Un abrazo amigos

martes, 25 de marzo de 2014

Formatear un número, con decimales y miles - PHP

para formatear un numero, con decimales y miles desde PHP tan solo deberemos llamar a la siguiente función

number_format($numero, 2, ",", ".");

en donde $numero es el numero que queremos formatear
2 el numero de decimales que queremos sacar
"," el separador de decimales
"." el separador de miles

Por defecto vienen los valores americanos el "." para separar decimales y la "," para los miles

fuente
http://www.php.net/manual/es/function.number-format.php

viernes, 28 de febrero de 2014

dar una fecha un tiempo atras - PHP

En muchas ocasiones tendremos la necesidad de mostrar ya sea por pantalla o simplemente almacenar en una variable una fecha en concreto, y la mayoría de las veces es una fecha pasada, como pueda ser una semana antes, un mes antes, o un año antes.

Para ello utilizaremos los métodos date() y mktime();

mktime() nos devuelve el timestamp de una fecha, si no le damos ningún parámetro nos devuelve la fecha actual; ojo fecha y hora UTC en España en concreto usamos UTC +1 podemos comprobar la fecha devuelta copiando el código que nos da, que sera algo al estilo: 1393605543 que es la fecha en la que estoy escribiendo esto; ingresando esos números en http://www.unixtimestamp.com/index.php

Por otro lado podemos formatearlo para verlo en días mes año, o como mas nos guste gracias a la función date(), a la que pasandole un string con el formato deseado lo tendremos todo solucionado, Y lo usaremos para la posición del año, m para la del mes, y d para el día. entre medias podemos poner / - espacio, lo que mas nos guste.

Para sacar una fecha en concreto en el mktime usaremos la función date() y le restaremos, o sumaremos, según necesitemos los días, meses, años e incluso minutos, horas o segundos por ejemplo:


  • date( "Y-m-d",mktime(0, 0, 0, date("m")-1,date("d"), date("Y"))) -> nos da la fecha de hace un mes
  • date( "Y-m-d",mktime(0, 0, 0, date("m"),date("d")-1, date("Y"))) -> nos da la fecha de ayer
  • date( "Y-m-d",mktime(0, 0, 0, date("m"),date("d"), date("Y")-1)) -> nos da la fecha de hace un año
  • date( "Y-m-d",mktime(0, 0, 0, date("m")+1,date("d"), date("Y"))) -> nos da la fecha de dentro de un mes
  • date( "Y-m-d",mktime(0, 0, 0, date("m"),date("d")+7, date("Y"))) -> nos da la fecha de dentro de una semana
  • date( "Y-m-d",mktime(0, 0, 0, date("m"),date("d"), date("Y")+1)) -> nos da la fecha de dentro de un año


Os dejo un par de ejemplos de su uso


<?php echo date( "Y-m-d",mktime(0, 0, 0, date("m")-1,date("d"), date("Y"))); ?>

<input type="date" name="desde" id="desde" value="<?php echo date( "Y-m-d",mktime(0, 0, 0, date("m")-1,date("d"), date("Y"))); ?>"/> al <input type="date" name="hasta" id="hasta" value="<?php echo date('Y-m-d'); ?>"/>

martes, 28 de enero de 2014

nusoap_client: Error: XML error parsing SOAP payload on line 1: Not well-formed (invalid token)

Este error nos aparecerá, al intentar consumir un WebService, mal montado, ya que en algún lugar tiene un echo, simplemente cambiamos los echo por return en el webService Server y arreglado ;)

lunes, 14 de octubre de 2013

Drupal 7 - Obtener la Url de una imagen

Puede que en ocasiones necesitemos obtener la URL de una imagen en Drupal, para después imprimirla desde por ejemplo un bloque; o trabajar con ella; con el siguiente código obtendremos la ruta de la imagen original:
$url =file_create_url($nodeView['body']['#object']->field_image['und']['0']['uri']);
y con este otro la ruta de la imagen formateada al estilo que le pasemos; para ello solo deberemos sustituir thumbnail por el estilo necesario

$url =  image_style_url("thumbnail",$nodeView['body']['#object']->field_image['und']['0']['uri']);
para finalizar podremos imprimirla:

echo '<img src="'.$url.'" >';

Espero os resulte de ayuda