Obtener fecha y hora con PHP

Como todos sabemos PHP es el lenguaje por excelencia para programar páginas web, por su facilidad de aprendizaje gracias a toda la documentación que existe por Internet. Por su puesto no debemos olvidarnos nunca página oficial donde encontraremos toda la documentación que necesitemos.

Bueno hoy os explicare las dos funciones principales que existen en PHP para obtener la hora y la fecha. Ahora me diréis ¿si esto ya esta en la web oficial?, pues si, pero si os pasa como a mi no os acordareis de la web oficial y entrareis en mega manuales o en otra similar.

Bueno...que me voy de lo que realmente quiero explicaros. Sigue leyendo

Como saber la IP de un usuario mediante PHP

Hola a tod@s, Hace poco días que hemos inaugurado una nueva sección en Mega Manuales llamada Herramientas en la que se pretende ir añadiendo herramientas online que los informáticos usamos prácticamente a diario. Estas herramientas además de poder usarlas libremente queremos enseñaros como funcionan, la primera que hemos añadido es ¿Cual es mi IP pública? y su funcionamiento es muy sencillo usando PHP.

Para obtener la IP pública de un usuario que se esta conectando a nuestra web usando PHP solo tendremos que usar la variable $_SERVER que nos da información del entorno del servidor. Esta variable es un array que contiene diversos datos, el que a nosotros nos interesa es REMOTE_ADDR que nos mostrará la IP desde donde se esta conectado el usuario. Os muestro el código:

1
2
$ip_publica = $_SERVER['REMOTE_ADDR'];
echo $ip_publica;

Si queréis ver el resultado ir a nuestra herramienta ¿Cual es mi IP pública?

Espero que os sirva, un saludo.

Seleccionar la ultima linea en un listbox usando C#

Hola de nuevo, hoy os traigo algo sencillo, se trata de poner el focus(termino en ingles) en la ultima linea del listbox o seleccionar la ultima linea de un listbox usando C#.

Como esto es muy sencillo de hacer voy a poner el código y a continuación explico lo que hace.

this.ListBox1.SelectedIndex = this.ListBox1.Items.Count - 1;

Esto lo que hace es contar el numero de lineas que tiene el listbox y restarle una unidad ya que el indice de lineas empieza en cero, una vez hecho esto la propiedad SelectedIndex coge el valor del indice y selecciona la ultima linea.

Esto es muy útil por ejemplo cuando estamos realizando un proceso y mostrando poco a poco los resultados en un listbox y necesitamos que la barra vaya avanzando hacia abajo para seguir viendo los últimos resultados del proceso.

Espero que os sirva. Un saludo a todos.

Codificación del archivo al leer un XML con XmlTextReader en C#

Cuando intentamos leer un archivo XML con XmlTextReader en C# y el archivo no proporciona el tipo de codificación nos saltará un error por contener caracteres extraños.

Todos los archivos XML indican el tipo de codificación con la siguiente linea: <?xml version="1.0" encoding="ISO-8859-1" ?>

Esta linea es la que utiliza XmlTextReader para saber como esta codificado el archivo, pero como ya he dicho podemos encontrarnos con el problema de que esta linea no se encuentre en el fichero y tengamos que indicarle a XmlTextReader que codificación tiene que usar.

Existen dos formas de hacer esto, una seria leer el fichero y volver a escribirlo añadiendo la linea de codificación o leer el fichero directamente e indicarle el tipo de codificación que debe utilizar.

Yo os voy a enseñar la segunda opción porque creo que es la más eficiente, os muestro como seria:

1
2
StreamReader leer_archivo = new StreamReader(direccion_archivo.Text, Encoding.Default);
XmlTextReader leer_xml = new XmlTextReader(leer_archivo);

Como veis es muy sencillo, leemos el archivo con StreamReader y le indicamos el tipo de codificación y después se lo pasamos a XmlTextReader.

Recordaros que debéis de utilizar el namespace System.IO, namespace System.Xml y el namespace System.Text

Espero que os sea de utilidad.

Cronometrar el tiempo de una tarea en c# (C Sharp)

Cuando programamos en C# hay veces que nos interesa medir el tiempo que va a tardar en realizarse una tarea o instrucción, para poder optimizar el código, o si la instrucción se repite varias veces en un bucle poder informar al usuario del tiempo que tardará en procesarse completamente la tarea del programa.

A continuación os muestro el código comentado:

Código C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Guardamos el tiempo antes del proceso a cronometrar
DateTime tiempoinicial = DateTime.Now;
 
//////////////////////////////////////////////////////////
//Aquí ponemos el conjunto de instrucciones a cronomentrar
//////////////////////////////////////////////////////////
 
//Guardamos el tiempo al finalizar todas las instrucciones
DateTime tiempofinal = DateTime.Now;
 
//Creamos el intervalo de tiempo con una resta
TimeSpan total = new TimeSpan(tiempofinal.Ticks - tiempoinicial.Ticks);
 
//Mostramos por pantalla el tiempo que ha tardado el proceso
System.Console.WriteLine(total.ToString());

Bueno queda decir que este código no funcionaria correctamente en cuanto tengamos subprocesos o hilos que se ejecuten paralelamente al proceso principal porque el código principal puede continuar mientras se procesa el secundario.

Espero que os sea de utilidad.