CC Creative Commons
Con la proliferación del uso de Internet, la situación cambió dastricamente, ya que ahora todo el mundo tiene acceso a una cantidad de información enorme. Es por esto que surge una iniciativa para cambiar la forma de regular todos estos copyright, denominada copyleft, la cual promueve que la cultura y la información este disponible para todas las personas, y además plantea unas formas de explotación de los derechos diferentes hasta lo que habia entonces. Fomentan, por ejemplo, la distribución gratuita de los contenidos siempre bajo unas estrictas condiciones de uso, que no deberán de ser violadas bajo ninguna circustancia.
Así nos podemos encontrar con el software libre publicado bajo licencia GPL, al cual puede acceder cualquier persona que lo desee sin ninguna restricción, siempre y cuando se ajuste a las normas de uso establecidas por el creador, incluso nos podemos encontrar que esa persona que esta disfrutando de ese producto puede llegar a contribuir en la mejora del mismo. Esto es una buena idea, ya que no tienes porque limitarte a las funcionalidades que haya tenido en cuenta el creador del software, sino que puedes añadirle tu mismo aquello que hechas en falta.
Esta idea también es buena para la gente del espectáculo que no tienen una gran repercusion mediática, ya que les permite acercarse a mucho más público del que podián hacerlo hace unos pocos años. Gracias a las licencias CC, te puedes crear tu propio cd en casa, y publicarlo en la red, sabiendo que tienes unos derechos sobre esa creación.
Este planteamiento del uso de internet para la difusión de la cultura más libre parece que no termina de convencer del todo a las grandes compañías del entretenimiento. Ya que estas prefieren ver a la red como su mayor enemigo en lugar de verlo como un medio de difusión masivo que les podría reportar muchos beneficios. La principal crítica que hacen estas entidades al uso de la red es el intercambio ilegal de los contenidos que hacen los usuarios. Pero el problema es que este tipo de empresas siempre han sido reacias a los cambios por miedo a perder la gallina de los huevos de oro que tienen en las manos.
Enviar email multiple con Php
En algunas ocasiones nos topamos con la necesidad de enviar email a una lista de correo, esto lo podemos hacer utilizando la librería PHPMailer el cual nos permite enviar emails con algunas opciones avanzadas para este tipo de labores.
Extraer datos de los destinatarios
Sea que tenemos una lista de clientes registrados en una base de datos tienda en la tabla clientes y deseamos enviarle un comunicado a cada uno de ellos de forma personalizada. Lo primero que tenemos que hacer es realizar la consulta a la base de datos y extraer los datos de estos clientes.
- // echo $row["nombres"];
- }
Integrando con PHPMailer
El siguiente paso es hacer el envío de los correos, para ello primero incluimos la clase class.phpmailer.php, definimos los datos del remitente y creamos el mensaje personalizado en html y texto a enviar a la lista.
- require("class.phpmailer.php");
-
- $mail = new PHPMailer();
- $mail->Host = "smtp1.example.com";
- $mail->From = "list@domain.com";
- $mail->FromName = "List manager";
- $mail->Subject = "Subject del correo";
-
- // HTML body
- $body = "Hola ".$row["nombres"].", ";
- $body.= "
Les comunicamos el nuevo servicio...
";
- $body.= "List manager";
- // Text body
- $text = "Hola ".$row["nombres"].", \n\n";
- $text.= "Les comunicamos el nuevo servicio...\n\n";
- $text.= "List manager";
- // Configurar Email
- $mail->Body = $body;
- $mail->AltBody = $text;
- $mail->AddAddress($row["email"], $row["nombres"]);
- // Enviar el email
- if(!$mail->Send()) {
- }
- $mail->ClearAddresses();
- }
Nótese que incluimos la dirección del destinatario con el método AddAddress en donde le pasamos el email y el nombre de la persona a la que deseamos enviar el email y finalmente utilizamos ClearAddresses el cual elimina las email a los cuales se ha enviado anteriormente el mensaje, de esta forma le llegará a cada usuario una mensaje único si necesidad de mostrar a quienes mas se esta enviando el mensaje.
Observaciones
En el caso que se quiera enviar a listas muy grandes, se deben cambiar algunos parámetros de configuración de PHP por ejemplo el tiempo de ejecución para que no se detenga el envío si el tiempo de proceso excede el tiempo de configuración. Una solución es hacer el envío en bloques de 500 o en bloques de 1000 por vez por ejemplo con lo cual no se superará el tiempo limite.
Finalmente les dejo los archivos fuente para que lo descarguen y realicen sus propias pruebas.
Convertir texto en URL SEO
Implementando la text2url
A la función encargada de convertir un texto normal en formato URL la llamaremos text2url, implementaremos esta función en PHP. El primer paso es eliminar los espacios al inicio y al lcon la función trim, luego convertimos todo a minúsculas, luego limitamos los caracteres a números y letras y convertimos los demás caracteres en guiones. Adicionalmente eliminamos los saltos de línea, tabuladores y finalmente reemplazamos los espacios en blanco por un separador que en nuestro caso hemos asignado al guion (-).
function text2url($string) {
$spacer = "-";
$string = trim($string);
$string = strtolower($string);
$string = trim(ereg_replace("[^ A-Za-z0-9_]", " ", $string));
$string = ereg_replace("[ \t\n\r]+", "-", $string);
$string = str_replace(" ", $spacer, $string);
$string = ereg_replace("[ -]+", "-", $string);
return $string;
}
Para hacer uso de esta función simplemente le pasamos como parámetro el texto que deseamos convertir a URL. Podemos ver un ejemplo de uso en el siguiente código.
$title = "MoFuse Versión movil de tu Web en Español";
echo $title;
// MoFuse Versión movil de tu Web en Español
echo text2url($title);
// mofuse-versi-n-movil-de-tu-web-en-espa-ol
Un ejemplo practico de de uso de esta función es el momento de guardar información en nuestra base de datos, por ejemplo si tenemos un tabla donde guardamos los datos de nuestros productos, la forma de insertar esta información incluyendo el URL sería de la forma:
$name = $_POST['name'];
$content = $_POST['content'];
$url = text2url($_POST['name']);
$sql = "INSERT INTO products (name, content, url)
VALUES ('".$name."', '".$content."', '".$url."')";
mysql_query($insertSQL, $conn) or die(mysql_error());
Obviamente esta es una función básica que aunque cumple con los requisitos de crear URL amigables, se podría mejorar con la posibilidad de convertir la vocales tildadas o con diéresis en vocales normales, la cual con un poco de trabajo se puede implementar.
Detectar IE6 en HTML
Detectar IE6 en HTML
Si queremos detectar IE6 en HTML podemos hacer uso de las formas condicionales, para ello detectamos exactamente si estamos en IE6.
Podríamos mejorar este código si detectamos si el navegador es menor a IE7 pues todas estas versiones tienen problemas con lo cual tendríamos:
Detectar IE6 en Javascript
Otro de los métodos es utilizar Javascript, para ello el método mas utilizado es:
var is_ie6 = (
window.external &&
typeof window.XMLHttpRequest == "undefined"
);
Ahora también existe una versión mas corta detectar IE6 propuesta por Dean Edwards:
var isMSIE = /*@cc_on!@*/false;
Detectar IE6 en PHP
Ahora si la detección la queremos hacer al nivel de servidor podemos utilizar el siguiente script:
$browser = $_SERVER['HTTP_USER_AGENT'];
$browser = substr("$browser", 25, 8);
if ($browser == "MSIE 6.0"){
// Accion a ejecutar para IE6
}
xml2array: PHP XML Parser
Obteniendo la función
Para descargar esta función, es necesario acceder a la web del autor de xml2array, copiar el código allí mostrado en un archivo llamado xml2array.php o al archivo donde estén nuestras funciones.
Utilizando xml2array
Luego para utilizar esta función le pasamos como parámetro un texto que contiene el XML y lo devolverá automáticamente en array, entonces si queremos acceder a un archivo que contiene el XML utilizaremos la función file_get_contents previamente.
- require("xml2array.php");
- $contents = file_get_contents('demo.xml');
- $result = xml2array($contents);
- print_r($result);
Nótese que hemos utilizado print_r, el cual imprime un array tabulado para facilitar la lectura. Veamos un ejemplo práctico de como se accede a los datos utilizando esta función.
Luego de utilizar esta función los datos se encuentran formateados de la siguiente forma:
<"lang type="interpreted""> PHP Python JSP Ruby
Array
(
[lang] => Array
(
[attr] => Array
(
[type] => interpreted
)
[name] => Array
(
[0] => Array
(
[value] => PHP
[attr] => Array ( [id] => 1 )
)
[1] => Array
(
[value] => Python
[attr] => Array ( [id] => 2 )
)
[2] => Array
(
[value] => JSP
[attr] => Array ( [id] => 3 )
)
[3] => Array
(
[value] => Ruby
[attr] => Array ( [id] => 4 )
)
)
)
)
Entonces si deseamos conocer cuales son los valores de los lenguajes con sus respectivos identificadores, tendríamos:
require("xml2array.php");
$contents = file_get_contents('data.xml');
$result = xml2array($contents);
$langs = $result['lang']['name'];
for ($i=0; $i < sizeof($langs); $i++) { echo $langs[$i]['attr']['id']." - ".$langs[$i]['value']; } sizeof($langs); Pueden ver el ejemplo funcionando en xml2array/index.php y el XML original el xml2array/data.xml. Como pueden ver una vez que esta convertido en XML es sencillo recorrer la información contenida en el array.
Modelo Vista Controlador en Php sin Utilizar Clases
El Modelo se encarga de todo lo que tiene que ver con la persistencia de datos. Guarda y recupera la información del medio persistente que utilicemos, ya sea una base de datos, ficheros de texto, XML, etc.
La Vista presenta la información obtenida con el modelo de manera que el usuario la pueda visualizar.
El Controlador, dependiendo de la acción solicitada por el usuario, es el que pide al modelo la información necesaria e invoca a la plantilla(de la vista) que corresponda para que la información sea presentada.
Para ver un ejemplo de codigo se puede acceder al siguiente enlace
MVC sin Clases
Php Data Objects (PDO)
En php podemos recurrir a la extension PDO (Php data objects), que se encarga de ofrecernos un interfaz de acceso comun independientemente de la base de datos que estemos atacando. De este modo si en algun momento desamos cambiar el tipo de la base de datos sobre la que estamos trabajando, tan solo tendremos que modificar el driver a utilizar en el constructor del objecto PDO.
Para poder utilizar los objectos PDO en tus desarrollos con php, deberás de disponer de una version de php 5.1 o superior.
Si deseas ver algunos ejemplos de código puedes visitar estas dos páginas:
http://www.jourmoly.com.ar/php-data-objects-pdo/
http://www.mclibre.org/consultar/php/lecciones/php_db_pdo.html