jueves, 24 de abril de 2008

PHP - Listar un directorio en concreto


Listar el contenido de un directorio en concreto

Aqui tenemos el codigo

is_dir() que recibe una ruta y devuelve un boleano. True si es un directorio y flase si no lo es.

opendir() que recibe la ruta de un directorio y genera un gestor de directorio, que utilizaremos luego para extraer los subdirectorios.

readdir() recibe un gestor de directorio devuelto por opendir() y sirve para leer todo el contenido de un directorio, tanto archivos como subdirectorios. Nosotros lo utilizaremos para obtener cada uno de los subdirectorios que contiene una ruta. En la primera llamada devuelve el primer archivo o subdirectorio, en la siguiente devuelve en segundo. Es decir, cuando se vuelve a llamar devuelve siempre el siguiente fichero y continúa hasta que se acaban, devolviendo false cuando no queda ninguno.

closedir() recibe un gestor de directorio y lo cierra.

lunes, 14 de abril de 2008

Obtener todas las variables GET y POST para un PHP

/*
/***VARIABLES POR GET ***/

$numero = count($_GET);
$tags = array_keys($_GET);// obtiene los nombres de las varibles
$valores = array_values($_GET);// obtiene los valores de las varibles

// crea las variables y les asigna el valor
for($i=0;$i<$numero;$i++){
$$tags[$i]=$valores[$i];
}

/***VARIABLES POR POST ***/

$numero2 = count($_POST);
$tags2 = array_keys($_POST); // obtiene los nombres de las varibles
$valores2 = array_values($_POST);// obtiene los valores de las varibles

// crea las variables y les asigna el valor
for($i=0;$i<$numero2;$i++){
$$tags2[$i]=$valores2[$i];
}

/*
ahora solo hay que llamar las variables por su nombre
ej: http://misitio.com/estearchivo.php?usuario=cristalab&password=sangre

para verlas solo pones la variable por su nombre
echo "nombre de usuario: ".$usuario."

password: ".$password;

en vez de usar $_GET['usuario'] y $_GET['password']
*/



?>
*/

martes, 1 de abril de 2008

PHP - mysql - Editar registro

$ssqlactu = "update modincidencias set tema = '".$lstarea."' , mensaje = '".$txtincidencia."' , estado = '".$lstestad$

PHP - Bucle con while

El siguiente bucle imprime la frase “una iteracion del bucle”, 5 veces:


$contador=1;
while ($contador<=5) {
echo “una iteracion del bucle
”;
$contador++;
}

miércoles, 20 de febrero de 2008

Configurar sonido

Para configurar el audio desde consola de linux, debemos de usar el comando alsaconf asi como instalar las utilidades de alsa

lunes, 18 de febrero de 2008

Creacion de scripts interactivos sin supervision del usuario

Creacion de scripts interactivos sin supervision del usuario

Publicado por Gnu Linux on 14 de Junio de 2007

Hola, hoy os quería hablar de una herramienta que he encontrado por casualidad navegando por la red. Se llama “expect” y según su descripción viene a ser un “dialogo programado con procesos interactivos”.

¿Cuantas veces, realizando vuestros scripts en bash, se os requería la contraseña de Super Usuario y teníais que introducirla a mano? A primera vista tendríais que ejecutar ese script con privilegios de root, con el riesgo que eso conlleva…

Para evitar ese riesgo aparece expect. Expect os permite ejecutar comandos y esperar una salida determinada por stdout o consola, como queráis llamarlo. Una vez recibe esa cadena, continua con el resto de instrucciones y permite enviar señales por stdin o teclado.

Así a primera vista me parece un modo de comunicación síncrona entre varios procesos. Las funciones principales que usaremos, que no digo que sean las únicas, serán:

  • spawn: Permite la ejecución de comandos por consola.
  • expect: Espera por una cadena predefinida en stdout.
  • send: Envía comandos por stdin con el proceso.

Si esta herramienta la combinamos con scripts nuestros, realmente se pueden hacer autenticas virguerias. A continuación os voy a poner un ejemplo muy básico que me he creado para subir ficheros por sftp con otro equipo:

#!/usr/bin/expect
spawn sftp 192.168.1.2
expect “mygnulinux@192.168.1.2’s password:”
send “mygnulinux\r”
expect “sftp>”
send “cd /home/mygnulinux\r”
expect “sftp>”
send “put *\r”
expect “sftp>”
send “exit\r”
expect eof

Nota: Al finalizar pondremos “expect eof” para terminar la ejecución de expect. Cuando enviamos una señal debemos poner al final ‘\r’ que viene a ser el retorno de carro o intro para que sea aceptada en la linea de comandos.

Si alguien tiene algo nuevo que añadir o bien encuentra algún fallo me gustaría me corrigiese en comentarios ya que no lo he probado mucho y no se en realidad cuanto poder tiene este comando.


Actualizaciçon 15/12/2011

Tambiçen existe el "autoexpect" y para finalizar la grabaciçon CtrlD ¿mirar manual



`

Buscar archivos, uso de find

Uso de find

El uso más común de este comando es el siguiente:

find  -name 

El primer argumento (directorio) es el directorio desde el que queremos que se busque (la búsqueda es recursiva por defecto, buscará también en todos los directorios que haya por debajo), la opción (-name) es el modo de búsqueda (en este caso por nombre), y el tercer argumento (en este caso nombre) son los criterios de búsqueda. Algunos ejemplos:

# find /usr -name mozilla
/usr/bin/mozilla
/usr/lib/mozilla

# find /usr -name '*.so'
[... casi todas las librerías del sistema ...]
# find / -name '*gtk*'
[... todos los ficheros cuyo nombre contenga "gtk"...]
# find / -size +3000k
[... todos los ficheros de tamaño >= 3000 KB ...]

viernes, 15 de febrero de 2008

opensuse 10.3 repositorios...

Bueno, me acabo de descargar el Cd1 de opensuse para instarlo en mi portatil Acer Aspire 1300 AMD Athlon... a ver si funciona, yo lo he instalado con KDE y aqui dejo un link de repositorio para la instalación via ftp:

ftp://mirrors.kernel.org/opensuse/distribution/10.3/repo/oss

El programa de instalación que se bajará será de aprox 70mb (67552kb)

a ver que tal anda este nuevo suse...

miércoles, 13 de febrero de 2008

Descargar archivos web desde consola

para poder descargar archivos desde la linea de comandos (CLI) de linux tenemos el uso de wget

ehemplo de uso:

wget ruta_del_archivo_a_descargar_ruta_http

wget http:web.com/ruta/ficherito.zip

PHP - MYSQL - Insertar registro en la BBDD

Insertar un registro en la base de datos

$ssql = "insert into TABLA (nombrecampo1, nombrecampo2) values ('valorcampo1', 'valorcampo2')";
$rs = mysql_query($ssql,$conn);

$ssql --> Aqui insertamos la consulta sql a ejecutar
$rs --> Ejecutamos la consulta (en este caso inertamos los valores)

martes, 12 de febrero de 2008

PHP - contar caracteres

strlen ($variable)

PHP - Comprobar si existen registros o no

Para comprobar si existen registros o no despues de ralizar una búsqueda:

if (mysql_num_rows($rs)!=0) Si en lugar de poner 0 le ponemos 3 siginificaria si contiene 3 filas de resultados
{
AQUI VA EL CÓDIGO DE SI EXISTEN REGISTROS
}
else
{
AQUI NO EL CÓDIGO SI NO SE HAN ENCONTRADO REGISTROS
}

xml & php

Para que una pagina web escrita en php sea reconocida como un ficherito xml hay que añadir la sieguiente línea de código:

header("content-type: text/xml");

cisco xml Inputflags

Para los <ciscoipphoneinput>

<inputflags>N</inputflags> -> Solo números N Numbers

<inputflags>U</inputflags> -> Solo Mayusculas Ucase Characters

<inputflags>A</inputflags> -> Todos los caracteres All characters


A - Plain ASCII text—use the keypad to enter numbers and text into the field.
T - Telephone number—Enter only numbers. The acceptable input includes numbers, #, and *.
N - Numeric—enter numbers only.
E - Equation—enter numbers and special math symbols.
U - Uppercase—enter uppercase letters only.
L - Lowercase—enter lowercase letters only.
P - Password field

lunes, 11 de febrero de 2008

PHP - Ejecutar en el servidor

Para poder enviar un Net send o un mensaje emergente a un PC con windows desde php y que además el servidor ha de ser linux despues veremos el ejmplo con windows:

en PHP y Linux:

exec('echo "Mensaje a enviar" | smbclient -M nombrenetbiosdelpc');

en PHP y windows:

exec('net send "mensajito" nombredelpc_o_usuario en_el_dominio');

PHP - Fecha y hora II

Ahora ya sabemos trabajar con la fecha actual, pero eso no es todo, imaginemos que queremos trabajar con la fecha de naciemiento de una persona, debemos poder generar una fecha distinta de la actual y eso lo haremos con mktime:

$fecha = mktime([hora[,minuto[,segundo[,mes[,dia[,año]]]]]])

Por ejemplo, voy a imprimir mi fecha de nacimiento por pantalla:

echo date ("M-d-Y", mktime (0,0,0,10,03,1984));

Para mostrar un dia de la semana o el mes en castellano, deberemos crear un array

int array("Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sabado");
echo
$dia[date ("w", mktime (0,0,0,10,03,1984))];


PHP - Fecha y hora

PHP trabaja las fechas a partir de la fecha UNIX timestamp (Segundos desde el mediodía del 1 de Enero de 1970), la forma de conseguir la fecha actual es la siguiente:

$fecha = time();


Si queremos mostrar detalles de esta fecha, que puede almacenarse por ejemplo en una base de datos utilizaremos la función date:

echo date("h:i:s",$fecha);


Donde "h:i:s" es una cadena que define el formato en que será mostrada la fecha (horas:minutos:segundos) y $fecha, un parametro opcional que indica sobre que valor de tiempo trabajar.

La cadena de formato, se crea combinando con simbolos, letras, numeros y caracteres de formato:

a - am/pm
A - AM/PM
B - Hora swatch de internet
d - Dia del mes 01 a 31
g - Hora de 1 a 12
G - Hora de 0 a 23
h - Hora de 01 a 12
H - Hora de 00 a 23
i - Minutos 00 a 59
m - Numero de mes de 01 a 12
n - Numero de mes de 1 a 12
s - Segundos de 00 a 59
t - Dias del mes de 28 a 31
U - Fecha Unix
w - Dia de la semana de 0 a 6 empezando por Domingo
W - Semana del año ej: 42
y - Año ej: 99
Y - Año ej: 1999
z - Dia del año de 0 a 366
Si queremos escribir 5 del 10 de 1999 haremos:

echo date("j \d\e\l n \d\e Y");



Como veis para mostrar una letra sin que sea reemplazada por una fecha, le ponemos \ delante

PHP - Mysql bases datos (ejemplos base)

Un archivo config.php:

//conecto con la base de datos
$conn = mysql_connect("servidormysql","usuariosmysql","contraseñausuariomysql");
//selecciono la BBDD
mysql_select_db("nombrebasedatos",$conn);
______________________

realizar un select

$ssql = "select * from tabla where criterio = 'prueba'";
$rs = mysql_query($ssql, $conn);

si solo queremos mostrar el valor de un campo concreto:

$celda = mysql_result($rs,0,"campodb");

el 0 indica la fila, por defecto 0, si quiseramos la tercera, escribiriamos 3

Para mostrar los resultados:

while ($columna = mysql_fetch_row($rs))
{
$columna[0] ---> Muestra el contenido de la columna 0
$columna[1] ---> Muestra el contenido de la columna 1 (y asi sucesivamente)
}