Descargar

Programando en PHP II (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

5.2. Cadenas. Subcadenas. (2) Ejemplo: cadpos.php3 < ?php echo "strpos('cadena de prueba', 'de') < br>"; $i = strpos('cadena de prueba', 'de'); echo "La posicion de: de en: cadena de prueba es: $i < br>< br>"; echo "strpos('cadena de prueba', 'de', 5) < br>"; $i = strpos('cadena de prueba', 'de', 5); echo "La posicion de: de en: cadena de prueba despues de la 5 posición es : $i < br>< br>"; echo "strrpos('cadena de prueba', 'de')< br>"; $s = strrpos('cadena de prueba', 'de'); echo "La posicion de: de en: cadena de prueba es : $s < br>< br>"; echo "strstr('cadena de prueba', 'de')< br>"; $s = strstr('cadena de prueba', 'de'); echo "La cadena despues de la primera ocurrencia de: de en: cadena de prueba es : $s < br>"; ?>

edu.red

5.3. Cadenas. Imprimir y formatear.  

int printf (string formato [, mixed args…]) string sprintf (string formato [, mixed args…])  

Relleno Alineación Número de caracteres Precisión Tipo % El carácter de tanto por ciento. b Entero en binario. c Entero como carácter ASCII. d Entero en decimal. f Double en punto flotante. o Entero en octal. s Cadena. x Entero en hexadecimal (minúsculas). X Entero en hexadecimal (mayúsculas). Secuencias de formato

edu.red

5.3. Cadenas. Imprimir y formatear. (2)  

printf(“%02d/%02d/%04d”, $dia, $mes, $año);   $pago1 = 68.75; $pago2 = 54.35; $pago = $pago1 + $pago2;

// echo $pago mostraría "123.1" // Mostrar al menos un dígito entero y exactamente // dos decimales, rellenando con ceros

printf ("%01.2f", $pago);  

edu.red

5.4. Escapar caracteres. SQL.  

$busca = “D’Alton”; // Habrá que escapar el apóstrofe

$sql = ‘SELECT * FROM usuarios WHERE apellido = ’’ . addslashes($busca) . ‘’’;  

edu.red

5.4. Escapar caracteres. Shell.  

string system (string comando [, int valor_salida])   echo system(“finger $usuario”); ¿Qué pasa si $usuario=“pepe ; apachectl stop” ?  

string escapeshellcmd (string comando)  

edu.red

5.4. Escapar caracteres. HTML.  

$valor = “a>b”; echo ‘< input type=hidden name=var value=”’ . htmlspecialchars($valor) . ‘”>’;

// < input type=hidden name=var value=”a>b”>  

string nl2br (string cadena)  

edu.red

5.5. Extraer campos.  

array explode (string delimitador, string cadena [, int límite])  

string implode (string delimitador, array campos) $cadena = implode(“:”, $campos); $cadena = “campo1:campo2:campo3”; $campos = explode(“:”, $cadena);

edu.red

5.5. Extraer campos. Expresiones regulares.  

array split (string delimitador, string cadena [, int límite])  

$fecha = "12/4 2002"; $campos = split ('[ /.-]', $fecha);

edu.red

5.6. Recorrer un array.  

$arr = array(1,'cosa',1.57,'gato'=>'raton','perro'=>'gato');   current($arr); // 1 next($arr); // cosa current($arr); // cosa prev($arr); // 1 end($arr); // gato current($arr); // gato key($arr); // perro reset($arr); // 1 each($arr); // array(0,1) each($arr); // array(1,'foo') each($arr); // array(2,1.57) reset(), end(), next(), each(), current(), key()

edu.red

5.7. Ordenar un array. sort(): Ordena el array por contenido en orden ascendente.

rsort(): Ordena por contenido en orden descendente.

ksort(): Ordena por el índice en orden ascendente.

rksort(): Ordena por el índice en orden descendente.

edu.red

5.8. Otras funciones.  

string trim (string cadena) string ltrim (string cadena) string rtrim (string cadena)  

 

string strtoupper (string cadena) string strtolower (string cadena) string ucfirst (string cadena) Eliminar espacios en blanco: Mayúsculas y minúsculas:

edu.red

6.1. Archivos. Abrir y cerrar.  

int fopen (string nombre, string modo [, int include_path])  

 

int fclose (int identificador) Modos: ‘r’ Sólo lectura. Puntero al inicio. ‘r+’ Lectura/escritura. Puntero al inicio. ‘w’ Sólo escritura. Se trunca el archivo. ‘w+’ Lectura/escritura. Se trunca el archivo. ‘a’ Sólo escritura. Puntero al final. ‘a+’ Lectura/escritura. Puntero al final.

edu.red

6.2. Archivos. Leer y escribir.  

string fgets (int identificador, int tamaño)

mixed fscanf (int identificador, string formato [, string var1…])

int feof (int identificador)

array file (string archivo [, int include_path])

int fwrite (int identificador, string cadena [, int tamaño])

edu.red

6.3. Archivos. Copiar / renombrar / borrar.  

int copy (string origen, string destino)

int rename (string origen, string destino)

int unlink (string archivo)

edu.red

6.4. Directorios.  

int chdir (string directorio) int mkdir (string nombre, int modo) int rmdir (string nombre)  

int opendir (string nombre) string readdir (int identificador) void closedir (int identificador)

edu.red

6.4. Directorio. Listado de contenidos.  

$direcotrio = opendir('.');

while (($archivo = readdir($directorio)) !== FALSE) { echo "$archivon"; }

closedir($directorio);

edu.red

6.5. Archivos. Envío.  

< FORM ENCTYPE="multipart/form-data" ACTION="recibir.php" METHOD=POST> < INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000"> archivo: < INPUT NAME="archivo" TYPE="file"> < INPUT TYPE="submit" VALUE="Enviar"> < /FORM>  

// Contenido de “recibir.php” echo "Recibido el archivo: ".$archivo_name."< br>n"; echo "Tamaño del archivo: ".$archivo_size."< br>n"; echo "Tipo mime: ".$archivo_type."< br>"; rename($archivo, $archivo_name);

edu.red

6.5. Archivos. Envío.  

< FORM ENCTYPE="multipart/form-data" ACTION="recibir1.php" METHOD=POST> < INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000"> archivo: < INPUT NAME="archivo" TYPE="file"> < INPUT TYPE="submit" VALUE="Enviar"> < /FORM>  

// Contenido de “recibir1.php” echo "Recibido el archivo: ".$archivo_name."< br>n"; echo "Tamaño del archivo: ".$archivo_size."< br>n"; echo "Tipo mime: ".$archivo_type."< br>"; @rename($archivo, $archivo_name);

edu.red

6.6 Pasar Variables por la URL Para pasar las variables de una página a otra lo podemos hacer introduciendo dicha variable dentro del enlace hipertexto de la página destino. La sintaxis sería la siguiente:

< a href="destino.php?variable1=valor1&variable2=valor2&…">Mi enlace< /a>

Estas variables no poseen el símbolo $ delante. Esto es debido a que en realidad este modo de pasar variables no es específico de PHP

edu.red

6.6 Pasar Variables por la URL. Ejemplo: origen.html < HTML> < HEAD>< TITLE>origen.html< /TITLE>< /HEAD>< BODY>< a href="destino.php?saludo=hola&texto=Esto es una variable texto"> Pasaje de variables saludo y texto a la página destino.php< /a>< /BODY> < /HTML>

edu.red

6.6 Pasar Variables por la URL. Ejemplo: destino.php < HTML> < HEAD>< TITLE>destino.php< /TITLE>< /HEAD> < BODY>< ? echo "Variable $saludo: $saludo < br>n"; echo "Variable $texto: $texto < br>n"?>< /BODY> < /HTML>

edu.red

6.7. Pasar variables por formularios Este tipo de transferencia nos permite interaccionar directamente con el usuario. El proceso es similar al explicado para las URLs. Primeramente, presentamos una primera página con el formulario clásico a rellenar y las variables son recogidas en una segunda página que las procesa

edu.red

6.8. Pasar variables por formularios. Ejemplo: formulario.html < HTML> < HEAD> < TITLE>formulario.html< /TITLE> < /HEAD>< BODY>< FORM METHOD="POST" ACTION="destino2.php">Nombre< br>< INPUT TYPE="TEXT" NAME="nombre">< br>Apellidos< br>< INPUT TYPE="TEXT" NAME="apellidos">< br>< INPUT TYPE="SUBMIT">< /FORM>< /BODY>< /HTML>

edu.red

6.9. Pasar variables por formularios. Ejemplo: destino2.php < HTML> < HEAD> < TITLE>destino2.php< /TITLE> < /HEAD>< BODY>< ? echo "Variable $nombre: $nombre < br>n"; echo "Variable $apellidos: $apellidos < br>n"?>< /BODY>< /HTML>

edu.red

7.1. POO. Definición de una clase.  

class NombreClase { var $variables;

function metodos ($parametros) { codigo } }

edu.red

7.1. POO. Definición de una clase. Ejemplo.  

class Coche { var $velocidad; // Velocidad actual   // Constructor por defecto. El coche está parado. function coche() { $this->velocidad = 0; }   // Constructor que indica la velocidad inicial. function coche($vel) { $this->velocidad = $vel; }   // Método acelerar. El coche va más rápido. function acelerar() { $this->velocidad++; }   // Método frenar. El coche va más lento hasta frenar. function frenar() { if ($this->velocidad > 0) { $this->velocidad–; } } }

edu.red

7.2. POO. Herencia.  

class ClaseDerivada extends ClaseBase {

// definición de métodos y variables // exclusivos de ClaseDerivada, // y redefinición (especialización) // de métodos de ClaseBase

}  

edu.red

7.2. POO. Herencia. Ejemplo.  

class CocheFantastico extends coche() { // Frenado instantáneo function frena() { $this->velocidad = 0; }   // ¡El coche habla! function habla() { echo “Hola, Michael.”; }   // ¡Salta! function salta() { echo “Boing!!”; }   // Turbo propulsión function turbo() { $this->velocidad = 200; } }  

edu.red

7.3. POO. Creación y uso de objetos.  

// Creación (instanciación) $MiCoche = new Coche; $MiCocheSeMueve = new Coche(10);

// Uso $MiCoche->acelerar(); $MiCoche->acelerar(); $MiCoche->acelerar(); echo $MiCoche->velocidad; $MiCoche->frenar();  

edu.red

8.1. BD. Conexión y desconexión.  

int mysql_connect ([string servidor [:puerto] [:/camino/al/socket] [, string usuario [, string contraseña]]])

int mysql_close ([int identificador])  

 

int mysql_pconnect ([string servidor [:puerto] [:/camino/al/socket] [, string usuario [, string contraseña]]])

int mysql_pclose ([int identificador])

edu.red

8.1. BD. Conexión y desconexión. Ejemplo.  

$link = mysql_connect ("www.mmlabx.ua.es", "nobody", ""); if (!$link) { die ("No se pudo conectar"); }

print ("Conexión realizada");

mysql_close ($link);

edu.red

8.2. BD. Elegir una BD.  

int mysql_select_db (string nombre_bd [, int identificador]) if (!mysql_select_db("prueba", $link)) { die (“No existe la BD”); }

edu.red

8.3. BD. Querys.  

int mysql_query (string query [, int identificador]) int mysql_db_query (string nombre_bd, string query [, int identificador]) int mysql_free_result (int result)  

 

$query = "SELECT codigo, nombre, descripcion, creditos, tipo FROM asignatura";

$asignaturas = mysql_query($query, $link); if (!$asignaturas) { die (“Error en el query”); }

edu.red

8.4. BD. Extraer información.  

int mysql_affected_rows ([int identificador])

int mysql_num_rows (int resultado)

array mysql_fetch_row (int resultado)

array mysql_fetch_array(int resultado [, int tipo_resultado])

object mysql_fetch_object (int result)

array mysql_fetch_lengths (int resultado)

int mysql_data_seek (int resultado, int numero_fila)  

edu.red

8.5. BD. Extraer información. Ejemplos.  

while ($fila = mysql_fetch_array($asignaturas)) { echo $fila[‘codigo’] . ‘ ‘ . $fila[‘nombre’] . “n”; }  

while ($fila = mysql_fetch_object($asignaturas)) { echo $fila->codigo . ‘ ‘ . $fila->nombre . “n”; }

edu.red

9. Acceso a BD unificado. Clase ConexionGenerica. class ConexionGenerica { var $link;

function connect($servidor, $usuario, $clave) { echo "< h1>El método < i>connect< /i> ", "no está implementado en la ", "clase < i>".get_class($this)."< /i>< /h1>"; return FALSE; }   function close() {} function select_db($base_datos) {} function query($query) {} function fetch_array($resultado) {} function free_result($resultado) {} }

edu.red

9. Acceso a BD unificado. Clase ConexionMySQL. require ("ConexionGenerica.inc");   class ConexionMySQL extends ConexionGenerica {

function connect($servidor="localhost", $usuario="nobody", $clave="") { return $this->link = mysql_connect($servidor, $usuario, $clave); }

function close() {} function select_db($base_datos) {} function query($query) {} function fetch_array($resultado) {} function free_result($resultado) {} }

edu.red

9. Acceso a BD unificado. Uso. // archivo CreaConexion.inc require ("ConexionMySQL.inc"); $conexion = new ConexionMySQL(); require ("CreaConexion.inc");   $conexion->connect("localhost", "nobody"); $conexion->select_db("prueba", $link);   $asignaturas = $conexion->query("SELECT codigo, nombre, descripcion, creditos, tipo FROM asignatura");

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente