Filed Under (PHP) by admin on 12-04-2012
Si nuestro sitio está alojado en un servidor Apache la forma más práctica y fácil es agregar la siguiente línea en un .htaccess localizado en el directorio raíz:
Filed Under (JavaScript, PHP) by admin on 02-04-2012
En ocasiones se nos plantea que en vez de dar el visto bueno con un mensaje, tengamos que redirigir un formulario con Contact Form 7 de WordPress a otra página de gracias.
Muy fácil, en ‘Additional Settings’ incluir:
on_sent_ok: "location = 'http://www.example.com/thank-you/';"
Filed Under (.Net) by admin on 22-12-2011
Para obtener los parámetros que se le pasan por consola a un programa se puede utilizar este código, por ejemplo en la consola pondríamos:
>Programa.exe argumento1
var x = Environment.GetCommandLineArgs();
if (x.Length > 0)
{
// x[0] es el nombre del programa -> resultado : Programa.exe
Console.WriteLine(x[1]); // -> resultado: argumento1
}
Filed Under (PHP) by admin on 22-11-2011
Para redireccionar la URL de un sitio desde sin www a www se debera insertar las siguientes líneas en nuestro archivo .htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.midominio.com$ [NC]
RewriteRule ^(.*)$ http://www.midominio.com/$1 [L,R=301]
De esta forma cuando ingresemos a midominio.com automáticamente se redireccionará a www.midominio.com
Filed Under (PHP) by admin on 18-11-2011
Muy fácil, con la función number_format: http://php.net/manual/es/function.number-format.php
echo number_format(123456789, 0, '', '.');
// Imprime 123.456.789
Filed Under (PHP) by admin on 15-11-2011
Algunas veces cuando trabajamos con aplicaciones Web , pueden ser ASP ó PHP y como ya sabemos cada una de ellas trabaja con un servidor el cual usa un puerto específico en la máquina donde esté instalado.
Resulta que por lo general estos servidores usan el puerto 80, pero si ya tenemos instalado uno de estos servidores, de seguro ya estará usando ese puerto y el nuevo servidor que queramos instalar no podrá iniciar su servicio.
Pues bien, a mi me pasó con Apache, la máquina donde tengo que instalar la aplicación ya tiene instalado el IIS (Internet Information Server) para otra aplicación que esta desarrolada en asp.net. Pues bien, esta aplicación debe estar en línea siempre y no puedo detener el IIS para instalar mi Apache, la solución es instalar ambos servidores en la misma máquina.
Instalamos Apache, y en el archivo httpd.conf cambiamos las siguientes líneas:
Listen 80
cambiamos esta línea de tal forma que quede así:
Listen 81
bien puede ser 81 u otro puerto que no esté uso.
La otra línea a modificar es:
ServerName localhost:80
de tal forma que quede
ServerName localhost:81
y de igual manera, puede ser 81 u otro puerto que no esté en uso.
Para visualizar el servidor, o los sitios web montados que corran con php, deben acceder en el navegador de esta forma:
http://localhost:81/sitioweb/
Filed Under (.Net) by admin on 11-10-2011
Filed Under (.Net, LINQ, SQLServer) by admin on 10-10-2011
Estos días he estado bastante liado ya que el proceso que teníamos de carga de XML realizaba una precarga en memoria del archivo (método Load()), la solución que hay es bastante sencilla con un XMLReader, os pongo un fragmento que seguro se entiende:
using (XmlReader reader = XmlReader.Create(directoryTemp + fichero))
{
reader.MoveToContent();
int count = 0; // una variable contador XElement nombretabla = null; // un XElement auxiliar
while (!reader.EOF)
{
switch (reader.NodeType)
{
case XmlNodeType.Element: // se puede filtrar por tipo de XmlNodeType...
if (count == 0)
{
// CUALQUIER CONDICION
count++;
reader.Read();
} else if (count == 1)
{
nombretabla = new XElement((XName)reader.Name); // esto para crear un XELEMENT con el nombre del Reader actual
count++;
reader.Read();
} else
{
if (string.IsNullOrEmpty(nodoReg)) nodoReg = reader.Name; // condicion para omitir anidados..
if (nodoReg == reader.Name)
{
count++;
nombretabla.Add(XElement.ReadFrom(reader) as XElement);
// INSERCION .. cada X lanzo una inserción en BD
if (count % numInserciones == 0)
{
nombrecondicionado.Add(nombretabla);
docaux.Add(nombrecondicionado);
// VALIDACION ...
validado = ValidarEsquema(docaux, esquema);
if (validado)
{
nreg += cond.Insertar(docaux, delete);
delete = false;
// vacio contenidos
nombretabla.Elements().Remove();
nombrecondicionado.Elements().Remove();
docaux.Elements().Remove();
}
else
{
OnReportInformation(string.Format("ERROR fichero{0} no valido.", fichero), ReportLevel.Error);
EstadoCarga = 2;
}
}
}
}
break;
default :
reader.Read();
break;
}
}
// INSERCION DE LOS ULTIMOS QUE NO ENTRAN EN EL ÚLTIMO WHILE
nombrecondicionado.Add(nombretabla);
docaux.Add(nombrecondicionado);
// VALIDACION
validado = ValidarEsquema(docaux, esquema);
if (validado)
{
nreg += cond.Insertar(docaux, delete);
// vacio contenidos
nombretabla.Elements().Remove();
nombrecondicionado.Elements().Remove();
docaux.Elements().Remove();
}
else
{
OnReportInformation(string.Format("ERROR fichero{0} no valido.", fichero), ReportLevel.Error);
EstadoCarga = 2;
}
}
Filed Under (.Net, LINQ) by admin on 10-10-2011
La diferencia es sencilla, mientra Descendants() cuenta todos los nodos (anidados incluidos), Elements() solo cuenta los del mismo nivel.
string xml = @"
<Root>
<Item>
<id>1</id>
</Item>
<Item>
<id>2</id>
</Item>
<Item>
<id>3</id>
<Items>
<Item>
<id>5</id>
</Item>
<Item>
<id>6</id>
</Item>
</Items>
</Item>
<Item>
<id>4</id>
</Item>
</Root>";
XDocument doc1 = XDocument.Parse(xml);
var q1 = from e in doc1.Root.Descendants("Item")
select e;
var q2 = from e in doc1.Root.Elements("Item")
select e;
int c1 = q1.Count(); //6
int c2 = q2.Count(); //4
Filed Under (Fotografía, Photoshop) by admin on 05-09-2011
Excelente tutorial donde explica paso a paso como conseguir el efecto HDR con photoshop