Posts Tagged ‘php’

Notas para wordpress

Lunes, junio 21st, 2010

Un par de notas rápidas sobre cómo hacer algunas personalizaciones a los temas de WordPress:

<?php wp_list_pages(‘depth=1&sort_column=menu_order&exclude=55&title_li=’ . __(”) . ” ); ?>

<?php $blog_title = get_bloginfo(‘url’); ?>

Y de regalo un par de enlaces más generales:

Enviando correo con PHP y SMTP

Viernes, marzo 26th, 2010

El otro día nos surgió la necesidad de mandar correos electrónicos desde el planificador cron a través de un servidor SMTP externo, así que aprovechando que no había hecho esto nunca, y tras un par de búsquedas y de leer un par de artículos (este y este), modifiqué un pequeño script en PHP para hacer justo lo que necesitábamos.

Al script se le pasan como parámetros la dirección de correo electrónico del destinatario, el asunto del mensaje y el contenido del mismo. Y hay que configurar el servidor SMTP, el usuario y la contraseña, para poder enviar correos, así como tener instalada el paquete Mail de la librería Pear.

pearmail.php “destinatario@destino.com” “Prueba de mail con php” “Hola caracola”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/php

require_once "Mail.php";

// =========== Configure these ========
$from = "Foo <foo@bar.com>";
$host = "smtp.foo.com";
$username = "foo";
$password = "bar";
// ======================

$to = $_SERVER["argv"][1];
$subject = $_SERVER["argv"][2];
$body = $_SERVER["argv"][3];

$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);

$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));

$mail = $smtp->send($to, $headers, $body);

echo "Sending mail to ".$to . "\n" . $body."\n\n";

if (PEAR::isError($mail)) {
echo("Error sending message: " . $mail->getMessage() ."\n" );
} else {
echo("Message successfully sent!\n");
}

?>

Conversor de vCard a LDIF/CSV

Viernes, enero 22nd, 2010

El otro día encontré que al fin ha salido una nueva versión de Lightning, el calendario para Mozilla Thunderbird (que por cierto, hace poco estrenó la versión 3, con algunas novedades muy interesantes). Llevaba utilizando una temporada Evolution porque quería el calendario integrado con el correo electrónico, pero Evolution nunca me convenció (y sigue sin hacerlo, desgraciadamente).

El caso es que Evolution permite exportar la libreta de direcciones en formato vCard, mientras que Thunderbird espera LDIF o CSV. Así que googleando un poco sobre cómo convertir de un formato a otro, encontré vcfConvert, un script en PHP que hace justo lo que dice que hace: Convertir de vCard a LDIF o CSV.

El script se puede utilizar directamente desde su página, o puedes bajártelo y ejecutarlo en tu propio ordenador (que es lo que yo hice) y funciona perfectamente.

Por ahora Lightning parece estable, han corregido un montón de fallos desde la última versión, así que con Lightning+Thunderbird… Bye bye Evolution ;-)

Exceeded memory en PHP

Martes, agosto 18th, 2009

Como podéis ver, he instalado el plugin XML Google Maps para generar mapas de rutas de montaña a partir de archivos gpx obtenidos de un GPS.

Este plugin es una maravilla, sin embargo encontré un pequeño problema al cargar archivos de GPS grandes (de más de unos 300KB):

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate
75 bytes) in /home/………../wp-content/plugins/xml-google-maps/xmlgooglemaps_helper.php on line 840

Es decir, el archivo xmlgooglemaps_helper.php intenta utilizar más memoria de la que está asignada para los scripts php (32MB en el caso de mi servidor). Googleando un poco llegué aquí, desde donde salté aquí, donde está la pista definitiva para añadir más memoria a una página php en particular, y que recomiendo leer porque hay más información de la que yo he necesitado aplicar y que puede ser útil para otro caso.

Así que solucionar la falta de memoria disponible para XML Google Maps pasa, en mi caso, simplemente por añadir:

ini_set(‘memory_limit’,’64M’);

Al archivo xmlgooglemaps_helper.php :-)