Archivo de la categoría: Php

Página de instalación de WordPress en blanco, error muy común

wordpress errores comunes

Seguro que a muchos de vosotros os ha pasado alguna vez. Queréis instalar un WordPress en un servidor. Es muy fácil, solo tienes que descargar la última versión de WordPress, subirla al servidor, e incluir los datos de la base de datos en el archivo wp_config.php. Pero de repente te das cuenta de que no es tan fácil porque la página de instalación no se carga, está en blanco o te aparece un error (“WP Límite de Memoria: 40 MB – Recomendamos una memoria mínima de 64MB.“). ¿Qué es lo que pasa?

Pues bien, después de comerme la cabeza en qué es lo que podía pasar (porqué la primera vez me aparecía la página en blanco, no daba ningún error), descubrí que era un problema de memoria: WordPress necesita 65 MB de memoria mientras que mi servidor solo le adjudicaba 40 MB.

¿Debemos ampliar la memoria a la requerida por el sistema? La respuesta es sí, en caso contrario no lograremos instalar el blog.

¿Cómo aumento la memoria de WordPress?

La manera más fácil es aumentando la memoria sólo para ese blog, insertando la siguiente línea de código en vuestro archivo wp-config.php:

define( "WP_MEMORY_LIMIT", "64M" );

Debéis instalar esta línea justo antes de:

require_once( ABSPATH . "wp-settings.php" );

Espero que os haya sido útil, ¡hasta la próxima!

Obtener número de Likes en Facebook

Número Me gusta en FacebookPara obtener el número de “Me gusta” o “Like” de un artículo o de una página web, basta con recoger los datos que devuelve la siguiente url:

https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,%20%20share_count,%20like_count,%20%20comment_count,%20total_count,%20%20commentsbox_count,%20comments_fbid,%20click_count%20%20FROM%20link_stat%20WHERE%20url=’http://www.compartelibros.com’

 

Esta dirección devuelve los siguientes datos:

{
   "data": [
      {
         "url": "http://www.compartelibros.com",
         "normalized_url": "http://www.compartelibros.com/",
         "share_count": 1906,
         "like_count": 21383,
         "comment_count": 1440,
         "total_count": 24729,
         "commentsbox_count": 0,
         "comments_fbid": "10150585935291040",
         "click_count": 0
      }
   ]
}

Para recoger los datos y tratarlos con PHP, solo tienes que hacer:

$contents = file_get_contents($url);
$obj = json_decode($contents);

echo "Likes: " . $obj->{'data'}[0]->{"like_count"};

En este ejemplo, solo se muestra cómo obtener el número de Me gustas en Facebook de un artículo o de un sitio web, pero también puedes conocer el número de veces que ha sido compartida una dirección, el número de veces que se ha comentado, etc.

Espero que os haya sido de ayuda ¡Saludos!

Obtener url actual con PHP

Si necesitas averiguar cuál es la url actual que está ejecutando un script php, existen varias variables (llamadas $_SERVER) que te pueden ayudar a obtener dicha información:

  • $_SERVER["REQUEST_URI"]: Devuelve la URL que estás ejecutando sin el dominio
  • $_SERVER["PHP_SELF"]: Devuelve el script que estás ejecutando, sin el dominio, que puede ser distinto que REQUEST_URI porque estés utilizando un .htaccess.
  • $_SERVER["SERVER_NAME"]: Almacena el servidor donde está la página.
  • $_SERVER[‘SERVER_PORT’]: Esta variable indica el puerto del servidor por el cual se está mostrando la url. Normalmente las web se sirven por el puerto 80.
  • $_SERVER[‘HTTP_HOST’]: Se obtiene el dominio de la web, en mi caso sería scriptsde.com

Para obtener la url actual con php basta con usar las siguientes líneas de código:

<? $host= $_SERVER["HTTP_HOST"];
$url= $_SERVER["REQUEST_URI"];
echo “http://” . $host . $url; ?>

Para obtener el dominio de una web con php:

<? $host= $_SERVER["HTTP_HOST"];
echo “http://” . $host; ?>

Obtener el tiempo de carga de una página web

Pingdom toolsSi estás optimizando tus páginas web para mejorar el posicionamiento en buscadores y la usabilidad de tus usuarios, y necesitas saber el tiempo de ejecución (medir el tiempo de carga) para comparar tus scripts y ver si tus cambios son mejores, puedes usar las siguientes herramientas:

  • Pingdom Tools: Load Time Analiza el sitio web completo revisando el peso y la carga de cada uno de los elementos que componen el sitio web, generando un reporte en forma de cascada con colores distintos para diferenciar cada elemento y ver objeto es el que tarda más en cargar.
  • Google: PageSpeed Insights Se trata de una herramienta de análisis que Google ofrece para optimizar sitios web. Lo único que tienes que hacer es introducir la url y esperar a que genere un reporte personalizado con una lista de sugerencias para mejorar el tiempo de carga en dispositivos móviles y navegadores de escritorio.
  • GTMetrix Esta herramienta te muestra de manera porcentual el impacto de cada error de tu página web on una posible solución detallada para que puedas corregirlo fácilmente. Además, en GTMetrix puedes medir la velocidad de tu sitio web y ver el comportamiento de cada elemento como: Javascript, CSS, Solicitudes HTTP, Búsquedas de DNS, Ajax,…
  • Load Impact
  • WooRank

 

También podéis usar la función microtime() en PHP para sacar el tiempo de ejecución de un bloque de código, el tiempo calculado es en microsegundos.

Un ejemplo de código que podríais usar:

<?php
//Crear la variable inicio al principio de la ejecución
$inicio = microtime(true);

// Código del que quieres medir el tiempo

// Volvemos a calcular el tiempo
$final = microtime(true);

// Haciendo la diferencia entre el tiempo de inicio y el tiempo final, sabemos el total
$total = $final – $inicio;
echo ‘Tiempo en ejecutar el script: ‘.$total.’ microsegundos';
?>

Hacer que un sitio web cargue rápido es todo un reto para los diseñadores y programadores. Esperamos que este artículo os haya sido de ayuda.

Verificar si una url existe con php

Aquí os dejo unos códigos de ejemplo de formas de comprobar si una url existe y está disponible o no. Se puede hacer usando la función get_headers(), file_exists(),… También os dejo una función con la que únicamente se comprueba el formato de la url.

get_headers()

<?php
$url 'http://scriptsde.com';
function url_exists($url) {
    $h = get_headers($url);
    $status array();
    preg_match('/HTTP\/.* ([0-9]+) .*/'$h[0] , $status);
    return ($status[1] == 200);
}
echo url_exists($url)? 'existe' 'no existe';
?>

 

file_exists()

<?php
$nombre_fichero 'http://scriptsde.com';
if (file_exists($nombre_fichero)) {
    echo "El fichero $nombre_fichero existe";
else {
    echo "El fichero $nombre_fichero no existe";
}
?>

 

PHP+CURL

<?php
$url 'http://scriptsde.com';
    function url_exists($url) {
        $ch = @curl_init($url);
        @curl_setopt($ch, CURLOPT_HEADER, TRUE);
        @curl_setopt($ch, CURLOPT_NOBODY, TRUE);
        @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
        @curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $status array();
        preg_match('/HTTP\/.* ([0-9]+) .*/', @curl_exec($ch) , $status);
        return ($status[1] == 200);
    }
echo url_exists($url)? 'existe' 'no existe';
?>

 

Comprobando el formato de una url

<?php
$url 'http://scriptsde.com';
function isURL($url){
    $pattern='|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i';
    if(preg_match($pattern$url) > 0) return true;
    else return false;
}
?>

 

Espero que os haya sido útil. ¡Saludos!