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']
*/
?>
*/
jueves, 10 de abril de 2008
PHP - Enviar mail
$email = $_GET['email'] ;
$message = $_GET['message'] ;
mail( "yourname@example.com", "Email Subject", $message, "From: $email" );
echo '
Congratulations your email has been sent
';?>
miércoles, 2 de abril de 2008
martes, 1 de abril de 2008
PHP - mysql - Editar registro
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
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...
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
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
$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 - Comprobar si existen registros o no
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
header("content-type: text/xml");
cisco xml Inputflags
<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
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
$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 arrayint array("Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sabado");
echo $dia[date ("w", mktime (0,0,0,10,03,1984))];
PHP - Fecha y hora
$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/pmSi queremos escribir 5 del 10 de 1999 haremos:
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
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)
//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)
}