Programación al Extremo

Buscar en este blog

miércoles, 28 de noviembre de 2012

Quitar o eliminar formato - etiquetas HTML con Javascript

Programación al Extremo : Javascript
Para eliminar el formato o etiquetas html en Javascript utilizamos innerText para Internet Explorer y textContent en Mozilla Firefox y Netscape que devuelve la misma cadena pero con todas las etiquetas y formato eliminadas. Veamos un ejemplo:
Copiar Codigo
<html>
<head>
</head>
<body>
<div id="textoremplazar">
<span style="color:red">Este es el texto el cual</span> <b>vamos</b> a quitarle todo el formato y <i>etiquetas</i> html.
 </div>
 <input type="submit"
 name="quitarFormato"
 id="quitarFormato" 
 value="Quitar Formato" 
 onclick="return quitarFormato();"/>
<script type="text/javascript">
function quitarFormato(){
//Obtenemos el valor que tiene el div identificado con textoremplazar
var textoEliminarFormato = document.getElementById("textoremplazar");
// Esta funcion es soportada en Internet Explorer
if(textoEliminarFormato.innerText != undefined){
//Remplazomos lo que tenemos en el contenedor por el texto sin formato
textoEliminarFormato.innerHTML=textoEliminarFormato.innerText;
}else{
// Esta funcion es soportada en Mozilla Firefox Netscape
////Remplazomos lo que tenemos en el contenedor por el texto sin formato
textoEliminarFormato.innerHTML=textoEliminarFormato.textContent;
}
}
 </script>
</body>
</html>


Probemos nuestro ejemplo
Este es el texto el cual vamos a quitarle todo el formato y etiquetas html.

Quitar o eliminar formato - etiquetas HTML con PHP

Programación al Extremo : PHP
Para eliminar el formato o etiquetas html en PHP utilizamos la funcion strip_tags que devuelve la misma cadena pero con todas las etiquetas y formato eliminadas
Veamos un ejemplo:
Copiar Codigo
<?php
$htmlremplazar="<html>
<head>
</head>
<body>
<div id='textoremplazar'>
<p>
Este es el texto al cual le <b>vamos</b> a quitar el formato en html utilizando.
la función strip_tags de php</p>
 </div>
 </body>
 </html>

 ";
echo strip_tags($htmlremplazar);
/*Salida: 
Este es el texto al cual le vamos a quitar el formato en html utilizando.
la función strip_tags de php
*/
/**/
echo strip_tags($htmlremplazar,"<b>");
/*
En este ejemplo se admiten las eiquetas <b>
Salida: 
Este es el texto al cual le <b>vamos</b> a quitar el formato en html utilizando.
la función strip_tags de php
*/
?>

martes, 27 de noviembre de 2012

Características del lenguaje Java

Programación al Extremo : Java

- Sencillo, orientado a objetos y familiar: Sencillo, para que no requiera grandes esfuerzos de entrenamiento para los desarrolladores. Orientado a objetos, porque la tecnología de objetos se considera madura y es el enfoque más adecuado para las necesidades de los sistemas distribuidos y/o cliente/servidor. Familiar, porque aunque se rechazó C++, se mantuvo Java lo más parecido posible a C++, eliminando sus complejidades innecesarias, para   facilitar la migración al nuevo lenguaje.

- Robusto y seguro: Robusto, simplificando la administración de memoria y eliminando las complejidades del uso de apuntadores y aritmética de apuntadores del C. Seguro para que pueda operar en un entorno de red.
- Independiente de la arquitectura y portable: Java está diseñado para soportar aplicaciones que serán instaladas en un entorno de red heterogéneo, con hardware y sistemas operativos diversos. Para hacer esto posible el compilador Java genera un código llamado 'bytecodes' o comúnmente conocido como código byte, un formato de código independiente de la plataforma diseñado para transportar código eficientemente a través de múltiples plataformas de hardware y software. Es además portable en el sentido de que es rigurosamente el mismo lenguaje en todas las plataformas. El 'bytecode' es traducido a código máquina y ejecutado por la Java Virtual Machine, que es la implementación Java para cada plataforma hardware-software concreta.

- Alto rendimiento: A pesar de ser interpretado, Java tiene en cuenta el rendimiento, y particularmente en las últimas versiones dispone de diversas herramientas para su optimización. Cuando se necesitan capacidades de proceso intensivas, pueden usarse llamadas a código nativo.

- Interpretado, multi-hilo y dinámico: El intérprete Java puede ejecutar codigo byte en cualquier máquina que disponga de una Máquina Virtual Java (JVM). Además Java incorpora capacidades avanzadas de ejecución multi-hilo (ejecución simultánea de más de un flujo de programa) y proporciona mecanismos de carga dinámica de clases en tiempo de ejecución.

Características del Lenguaje
Lenguaje de propósito general.
Lenguaje Orientado a Objetos.-
Sintaxis inspirada en la de C/C++.
- Lenguaje multiplataforma: Los programas Java se ejecutan sin variación (sin recompilar) en cualquier plataforma soportada (Windows, UNIX, Mac, etc.)
- Lenguaje interpretado: El intérprete a código máquina (dependiente de la plataforma) se llama Java Virtual Machine (JVM). El compilador produce un código intermedio independiente del sistema denominado bytecode ó código byte.
- Lenguaje gratuito: Creado por SUN Microsystems, que distribuye gratuitamente el producto base, denominado JDK (Java Development Toolkit) o actualmente J2SE (Java 2 Standard Edition).
- API distribuida con el J2SE muy amplia. Código fuente de la API disponible.

Facilidades del J2SE  (Java 2 Estándar Edition)
- Herramientas para generar programas Java. Compilador, depurador, herramienta para   documentación, etc.
- La JVM, necesaria para ejecutar programas Java.
- La API de Java (jerarquía de clases).
- Código fuente de la API (Opcional).
- Documentación.
Java Runtime Environment  (JRE)
JRE es el entorno mínimo para ejecutar programas Java 2. Incluye la JVM y la API. Está incluida en el J2SE aunque puede descargarse e instalarse separadamente. En aquellos sistemas donde se vayan a ejecutar programas Java, pero no compilarlos, el JRE es suficiente. 
El JRE incluye el Java Plug-in, que es el 'añadido' que necesitan lo navegadores (Explorer o Netscape) para poder ejecutar programas Java 2. Es decir que instalando el JRE se tiene soporte completo Java 2, tanto para aplicaciones normales (denominadas 'standalone') como para Applets (programas Java que se ejecutan en una página Web, cuando esta es accedida desde un navegador).

Antecedentes del Lenguaje Java

Programación al Extremo : Java

Java se creó como parte de un proyecto de investigación para el desarrollo de software avanzado para una amplia variedad de dispositivos de red y sistemas embebidos. La meta era diseñar una plataforma operativa sencilla, segura, portable, distribuida y de tiempo real.

Cuando se inició el proyecto, C++ era el lenguaje del momento. Pero a lo largo del tiempo, las dificultades encontradas con C++ crecieron hasta el punto en que se pensó que los problemas podrían resolverse mejor creando una plataforma de lenguaje completamente nueva.

Se hizo uso de la arquitectura y diseño de una amplia variedad de lenguajes como Eiffel, SmallTalk, Objetive C y Cedar/Mesa. El resultado es un lenguaje que se ha mostrado ideal para desarrollar aplicaciones de usuario final seguras, distribuidas y basadas en red en un amplio rango de entornos desde los dispositivos de red embebidos hasta su uso para soluciones en Internet.

Programación Orientada a Objetos Java

Programación al Extremo : Java

La Programación Orientada a Objetos es un paradigma de programación diferente a la Programación Estructurada o a la misma Programación Procedural al que la mayoria de los programadores están acostumbrados a utilizar.

En la Programación Estructurada y la Programación Procedural lo mas importante es el procedimiento que se esta desarrollando a través de un lenguaje de programación. En Programación Orientada a Objetos, se hace un gran énfasis a los datos, y todo gira alrededor de ellos.
Cada vez que alguien quiere hacer una aplicación  debe de pensar en los elementos (datos) que va a utilizar para programar, y la relación que existe entre estos datos, en su forma de interactuar entre si.


El mundo esta lleno de objetos y estos objetos tienen ciertas características que los hacen únicos y esas características se derivan de atributos que agrupadas representan a una clase que compone a los objetos definidos.
Java es un lenguaje que nos ayuda a entender mucho mejor el paradigma Orientado a Objetos de una manera mas sencilla y natural.

jueves, 8 de noviembre de 2012

Enviar mail usando PHP y AJAX

Programación al Extremo : PHP
Hola en esta ocasión veremos un pequeño ejemplo de como enviar un mail usando PHP y Ajax juntos.

Primero empezaremos creando nuestro formulario para enviar nuestro Email

formulariomail.html
<!DOCTYPE html>
<html>
<head>
<title>Formulario de Envio de Mail</title>
<script src="funcionAjax.js" language="javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<!-- id=miformulario que utilizaremos en el archivofuncionAjax.js para referirnos a el -->
<form name="formulario" id="miformulario" method="post" action="enviarMail.php">
<table>
<tr> 
<td colspan="2"style="text-align:center">
<p>Enviar Mail de Prueba Php Usuando Ajax</p>
</td>
</tr>

<tr>
<td><p>Para quien:</p></td>
<td><input type="text" name="para"id="para"/></td>
 </tr>

<tr> <td><p>Remitente:</p></td> 
<td><input type="text" name="remitente"id="remitente" value="mimail@ejemplomail.com"/></td> </tr> 
<tr> <td><p>Cuerpo del Mensaje</p></td> <td><textarea name="mensaje" col="10" rows="10"id="mensaje"> </textarea></td> </tr> <tr> <td colspan="2"style="text-align:center"> <input type="submit" name="enviar" value="EnviarMail"/> </td> </tr> </table>
</form> 
<div id="resultados">
</div>
</body>
</html>

Luego creamos nuestro archivo Ajax que sera el encargado de hacer el puente con  el servidor


funcionAjax.js
addEvent(window,'load',inicializarEventos,false);
function inicializarEventos(){
var ref=document.getElementById('miformulario');

addEvent(ref,'submit',enviarDatosServidor,false);}

function enviarDatosServidor(e){
if (window.event)
window.event.returnValue=false;
else if (e)
e.preventDefault(); 
enviarFormularioServidor();}

function retornarDatos(){
var cadena='';
var para=document.getElementById('para').value; 
var mensaje=document.getElementById('mensaje').value;
var remitente=document.getElementById('remitente').value; cadena='para='+encodeURIComponent(para)+'&mensaje='+encodeURIComponent(mensaje) +'&remitente='+encodeURIComponent(remitente); return cadena;} var conexionServidor;function enviarFormularioServidor() { conexionServidor=crearXMLHttpRequest(); conexionServidor.onreadystatechange = procesarEventos; conexionServidor.open('POST','enviarMail.php', true); conexionServidor.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); conexionServidor.send(retornarDatos()); }

function procesarEventos(){
var resultados = document.getElementById("resultados");
if(conexionServidor.readyState == 4) {
resultados.innerHTML =conexionServidor.responseText; }
else { resultados.innerHTML = 'Enviando...'; }
}
//*************************************** //Funciones comunes a todos los problemas //***************************************

function addEvent(elemento,nomevento,funcion,captura){
if (elemento.attachEvent) { 
elemento.attachEvent('on'+nomevento,funcion); return true; }
else if (elemento.addEventListener) { 
elemento.addEventListener(nomevento,funcion,captura); return true; }
else return false;}
function crearXMLHttpRequest() { 
var xmlHttp=null; 
if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); return xmlHttp;}


Luego creamos nuestro archivo controlador Php que sera el encargado de Enviar el Mail
enviarMail.php

<?php// recibimos las variables enviadas al servidor
$para = $_POST["para"];
$remitente = $_POST["remitente"];
$cuerpoMensaje = $_POST["mensaje"]; 
echo $para;
// subject
echo $titulo = 'Este es Un mensaje de Prueba de la Funcion Mail'; 
// message
echo $mensaje = " <html> <head> <title>Este es Un mensaje de Prueba de la Funcion Mail</title> </head> <body> <p>$cuerpoMensaje</p> </body> </html> ";
// Para enviar un correo HTML mail, la cabecera Content-type debe fijarse
$cabeceras = 'MIME-Version: 1.0' . "\r\n";$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Cabeceras adicionales
$cabeceras .= "To: $para" . "\r\n";$cabeceras .= "From: $remitente" . "\r\n";
//$cabeceras .= 'Cc: copiaoculta@ejemplocorreo.com' . "\r\n";//Copia//$cabeceras .= 'Bcc: birthdaycheck@ejemplocorreo.com' . "\r\n";//Copia oculta
// Funcion Mail
echo mail($para, $titulo, $mensaje, $cabeceras);?>
Listo probamos y nuestro mensaje sera enviado a nuestro remitente

martes, 6 de noviembre de 2012

Tipos primitivos Integers Java

Programación al Extremo : Java


Java ha definido cuatro tipos primitivos de enteros short, long, byte e int.

Java no soporta tipo sin signos.

Vamos a definir cada tipo de entero en java.

byte

El entero más pequeño en java es el tipo byte. Este tipo de datos que puede almacenar un número entero entre -128 y 127. Además este tipo de dato ocupa 8 bits (1 byte) en memoria.

package operacionesByte;
public class OperacionByte {
public static void main(String arg[]){
//declaracion de un tipo byte en java   
    //Inicializacion
byte miByte=0;
/* si asignamos un numero mayor a 127
 * o menor a -129
 * mostrara el siguiente error:
 * possible loss of precision
 * required: byte
 * found:    int
 * ejemplo miByte=128;
 *         miByte=-129;
 * aqui daria este error
 * 
 */
/*asignando un valor a un tipo byte java
 * Formato decimal
 */
miByte=127;
/*asignando un valor a un tipo byte java
 * Formato Octal, el prefijo 0 indica un valor octal.
 */
miByte=015;
//salida 13

/*asignando un valor a un tipo byte java
 * Formato hexadecimal el prefijo 0x indica un valor hexadecimal.
 * este opera en forma de suma de binarios
 *128 64 32 16 8  4  2  1    
 * 0  0  0  1  1  1  1  1
 */
miByte=0x1f;
// salida 31
}    
}


short
Este tipo de dato puede almacenar un número entero en el intervalo -32768 ,y 32767 . Ocupa 16 bits (2 bytes), en memoria. Es uno de los tipos de datos menos usados.

package operacionesShort;
public class OperacionShort {
    public static void main(String arg[]){
//declaracion de un tipo byte en java 
        //inicializacion 
short miShort=0;
/* si asignamos un numero mayor a 32767
 * o menor a -32769
 * mostrara el siguiente error:
 * possible loss of precision
 * required: short
 * found:    int
 *  ejemplo miShort=32768;
 *         miShort=-32769;
 * aqui daria este error
 */
/*asignando un valor a un tipo short java
 * Formato decimal
 */
miShort=32766;
/*asignando un valor a un tipo short java
 * Formato Octal, el prefijo 0 indica un valor octal.
 */
miShort=015;
//salida 13

/*asignando un valor a un tipo short java
 * Formato hexadecimal el prefijo 0x indica un valor hexadecimal.
 * este opera en forma de suma de binarios
 *128 64 32 16 8  4  2  1    
 * 0  0  0  1  1  1  1  1
 */
miShort=0x1f;
// salida 31
} 

 
}

int
Este tipo de dato es el mas usado, almacena un numero entero y su valor mínimo es -2147483648 y máximo 2147483647. Ocupa 32 bits (4 bytes) en memoria. A la hora de trabajar con enteros int es la mejor elección.
package operacionesInt;
public class OperacionInt {
public static void main(String arg[]){
//declaracion de un tipo byte en java   
    //Inicializacion
int miInt=0;
/* si asignamos un numero mayor a 2147483647
 * o menor a -2147483648
 * mostrara el siguiente error:
 * integer number too large: 2147483648
 * ejemplo miInt=2147483648;
 *         miInt=-2147483649;
 * aqui daria este error
 * 
 */
/*asignando un valor a un tipo int java
 * Formato decimal
 */
miInt=2147483647;
/*asignando un valor a un tipo int java
 * Formato Octal, el prefijo 0 indica un valor octal.
 */
miInt=015;
//salida 13

/*asignando un valor a un tipo int java
 * Formato hexadecimal el prefijo 0x indica un valor hexadecimal.
 * este opera en forma de suma de binarios
 *128 64 32 16 8  4  2  1    
 * 0  0  0  1  1  1  1  1
 */
miInt=0x1f;
// salida 31
}    
}


--
long

Este tipo de dato es utilizado cuando el tipo int no es suficiente grande para mantener el valor deseado. El rango de este tipo es bastante grande. El tipo long representa enteros y ocupa 64 bits(4 bytes) en memoria. Su valor mínimo es -9223372036854775808 y el máximo 9223372036854775807


package operacionesLong;
public class OperacionLong {
public static void main(String arg[]){
//declaracion de un tipo byte en java   
    //Inicializacion
long miLong=0L;
/* si asignamos un numero mayor a 9223372036854775807
 * o menor a -9223372036854775808
 * mostrara el siguiente error:
 * integer number too large: 9223372036854775807
 * ejemplo miLong=9223372036854775807;
 *         miLong=-9223372036854775807;
 * aqui daria este error
 * 
 */
/*asignando un valor a un tipo long java
 * Formato decimal
 */
miLong= Long.valueOf("9223372036854775807");
/*asignando un valor a un tipo byte java
 * Formato Octal, el prefijo 0 indica un valor octal.
 */
System.out.println(miLong);
miLong=015;
//salida 13

/*asignando un valor a un tipo byte java
 * Formato hexadecimal el prefijo 0x indica un valor hexadecimal.
 * este opera en forma de suma de binarios
 *128 64 32 16 8  4  2  1    
 * 0  0  0  1  1  1  1  1
 */
miLong=0x1f;
// salida 31
}    
}

jueves, 1 de noviembre de 2012

Los Tipos Primitivos en Java

Programación al Extremo : Java

Java es un lenguaje fuertemente tipado.

Que quiere decir esto que todas las variables, expresiones tienen un tipo y estos tipos se encuentran rigurosamente definido en el lenguaje.
 La seguridad y robustez de java se debe en gran medida al tipado fuerte que maneja, pero como funciona esto bueno el compilador de java comprueba todas las expresiones y parámetros para asegurar que todos los tipos sean compatibles.

 Los Tipos Primitivos en Java 

Java define ocho tipos primitivos de datos que son: byte, short, int, long, char, float, double y boolean.

Los Tipos Primitivos comúnmente también son conocidos como Tipos Simples los cuales e dividen en cuatro grupos que son:
Enteros este grupo contiene los tipos byte, short int, y long los cuales se usan para números con signo.
Java no soporta los enteros sin signo.
 El ancho y rangos de estos tipos de enteros varian ampliamente, como se muestra en esta tabla siguiente
:
Nombre Ancho Rango
long 64 –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
int 32 –2,147,483,648 to 2,147,483,647
short 16 –32,768 to 32,767
byte 8 –128 to 127

Numero de Punto Flotante este grupo contiene los tipos float y doublé que constituyen los números con precisión fraccional.

Caracteres este grupo contiene los tipos char que constituyen un conjunto de caracteres, como letras y números.

Booleano Este grupo contiene los tipos boolean, que es un tipo especial de representación de valores verdadero / falso.

Nota: Aunque Java es completamente Orientado a Objetos los Tipos primitivos no lo son.