About Taringa!

Popular channels

PHP - Manual hecho por mi

----------------------------------------------------------------------------------------------------------------
PHP - Introducción
----------------------------------------------------------------------------------------------------------------

PHP Hypertext Pre-processor
Lenguaje de script interpretado.
Está diseñado especialmente para desarrollo web y puede ser incrustado dentro de código HTML

Fue creado originalmente por Rasmus Lerdorf en 1994
El proyecto pasó de una persona a varios (lanzaron PHP 3)
En el 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine 1.0
En el 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0


----------------------------------------------------------------------------------------------------------------
Variables y Sintaxis Básica
----------------------------------------------------------------------------------------------------------------

Las variables no tienen tipo (lo define su contenido)
Se nombran empezando con $. Ej: $variable, son case sensitive
No aceptan comillas, espacios ni caracteres especiales
Cáda línea finaliza con ; Puede obviarse si es la última
Los comentarios son //Comentario y /* Comentario */
Los tags de PHP son:


<% %>

Las páginas tienen extensión .php (puede configurarse apache para que tome otra extensión)

El interprete:
1)Ignora HTML
2)Interpreta PHP
3)Devuelve HTML puro

----------------------------------------------------------------------------------------------------------------
Tipos de Datos
----------------------------------------------------------------------------------------------------------------

Escalares -->Integer
-->Double
-->String

Compuestos -->Arrays
-->Arrays Asociativos

Los strings usan comillas " o ' y se concatenan con punto (.)
Las comillas " permiten que se interpreten variables internas y caracteres especiales. Ej: "hola $nombre"
Las comillas ' no, imprimen el texto como viene.

Caracteres especiales:
/t TAB /n Nueva Línea
/$ signo $ /r Retorno de carro
// Barra /" Comilla

Se puede acceder a cada caracter del string: $cadena= H|O|L|A $cadena[0]="H"
0|1|2|3

Array asociativo: $meses["first"] = "Enero"
Array normal: $meses[0] = "Enero"

Igualación:
$cadena1 = $cadena2
Por referencia $cadena1 = &$cadena2 --> si cambia el valor de una, cambia en la otra

Predefinidas:

$HTTP_ACCEPT_LANGUAGE: Lengua del navegador
$PHP_SELF: URL del script
$HTTP_GET_VARS: Array enviadas mediante GET
$HTTP_POST_VARS: Array enviadas mediante POST
$HTTP_GET_FILES: Files enviados mediante GET
$HTTP_POST_FILES: Files enviados mediante POST
$REMOTE_ADDR: IP Cliente
$DOCUMENT_ROOT: Path físico en el server
$REQUEST_METHOD: Método de request. Puede ser, POST o GET


phpinfo.php llama a la función phpinfo(), muestra estas entre otras.

Globales: Global $a;
Estáticas: Están dentro de una función, pero mantienen su valor fuera. Static $a;
Ej:

Function sucu(){ | Esto imprime en pantalla
static $a = 0; | 1
$a++; | 2
echo $a; | $a, mantuvo su valor
} |
sucu(); |
sucu(); |

Constantes: Sólo ESCALARES. define("nombre","valor")


----------------------------------------------------------------------------------------------------------------
Operadores
----------------------------------------------------------------------------------------------------------------

+ - * / %
suma resta mult div mod

$i = $i + 1 equivale a $i++ ($i++ o ++$i, pre y post incremento)
$i = $i - 1 equivale a $i-- ($i-- o --$i, pre y post decremento)
$i = $i + 3 equivale a $i+=3
$b = $b . "lolo" equivale a $b.="texto"

Identidad: $a == $b (TRUE/FALSE)
Desigualdad: $a != $b (TRUE/FALSE)
Menor/Mayor: $a > $b, $a < $b, $a <= $b (TRUE FALSE)

&& equivale a AND
|| equivale a OR
XOR

!$a devuelve TRUE si $a es FALSE (sería como un NOT)

----------------------------------------------------------------------------------------------------------------
Control de Flujo
----------------------------------------------------------------------------------------------------------------

if($a==$b){ | Si es una sóla línea pueden obviarse los {}
... | La sintaxis es identica a C
... |
}elseif($a<$b){ |
... |
... |
}else{ |
... |
... |
} |

if($a==$b): | En este caso
... | La sintaxis es similar a VB
... | (se puede usar el mismo criterio en while, for, switch)
elseif($a<$b): |
... |
... |
else: |
... |
... |
endif; |


Dos formas de escribir un loop Do While:

Se ejecuta una vez Puede no ejecutarse ni una vez
Do { while($i<=0){
$i++; echo $i;
echo $i; $i++;
}While($i<=0); }

Dos bucles for:

for($i=1, $i<=10, $i++){ foreach($miarray as $valor){
... echo $valor;
... ...
} }

Break: Corta un bucle for. Si hay bucles anidados, Break 2 sale de los dos.
Se usa en los switch para que no evalúe cada CASE.

Continue: Es más fácil explicarlo con un ejemplo
$i=0;
while($i<=10){
$i++;
if(($i % 2) > 0) --> si MOD de $i/2 es > 0 no hace nada y sigue el loop
continue;
echo "$i es par
"; --> en caso contrario, imprime que es par.
}

Switch: Es el SELECT CASE de Visual Basic (o el switch de C)
switch($i){
case 0:
case 1:
echo "$i es 1";
break;
case 2:
default:
}

----------------------------------------------------------------------------------------------------------------
Funciones definidas por el usuario
----------------------------------------------------------------------------------------------------------------

No son case sensitive:

function suma($a, $b){
$c = $a + $b;
return $c; --> se puede poner return($a+$b);
}

function suma($a=1) --> valor por defecto

Se puede pasar valores por referencia usando &, sino es por valor.

CallByName: Es muy sencillo, simplemente se nombra como la función:

$var = "suma";
$var($a, $b); --> es como llamar a suma($a, $b);


----------------------------------------------------------------------------------------------------------------
Arrays
----------------------------------------------------------------------------------------------------------------

Usando:

foreach($miarray as $valor){ --> muestra en el orden que se metieron los datos
echo $valor; --> NO respeta subindices
}

foreach($miarray as $clave => $valor){ --> muestra en orden
echo "La posición $clave es $valor;
}

Hay, arrays normales, asociativos, unidimensionales y multidimensionales.

Unidimensionales:
$a[1] = "dato"
$a["dato"] = "otrodato"

Bidimensionales:
$ficha[0]["nomb"] = "Juan"
$ficha[0]["edad"] = 23

Para imprimir, se puede hacer:

echo "Nombre " . $ficha[0]["nomb"];
o sino:
echo "Nombre {$ficha[0][nomb]}"; --> se deben usar {} y no poner las comillas en "nomb"


----------------------------------------------------------------------------------------------------------------
Bases de Datos
----------------------------------------------------------------------------------------------------------------

ODBC: Open Data Base Connectivity
JDBC: Java Data Base Connectivity

phpmyadmin: Manejador de bases de datos en MySQL (similar a enterprise manager)

CREATE DATABASE 'agenda';
SHOW DATABASES;
DROP DATABASE agenda;
USE agenda;

MySQL: Puero default 3306


----------------------------------------------------------------------------------------------------------------
Mail
----------------------------------------------------------------------------------------------------------------

En el archivo php.ini, sección [mail functions] está la configuración del mailer que viene integrado en PHP
Ejemplo:

SMTP = localhost
smtp_port = 25
sendmail_from = "[email protected]"

Si no se desea tocar el ini, o se desea usa múltiples configuraciones, se pueden setear estos campos en el programa
mediante la función ini_set:
ini_set("SMTP", "mail.host.com.ar" );
ini_set("sendmail_from", "[email protected]");
ini_set("smtp_port", "25");


----------------------------------------------------------------------------------------------------------------
Funciones
----------------------------------------------------------------------------------------------------------------



echo(dato, dato) --> imprime dato en pantalla. Aceptar X parámetros. (en realidad es una sentencia)

chr(valor ASCII) --> Devuelve el caracter ASCII seleccionado

strlen(cadena) -->Devuelve el largo de la cadena.

ltrim(cadena,) --> Saca espacios a izquierda. Considera espacios a tabs, enter, null, espacio.
Si se le pasa valor, saca el contenido (en vez de espacio)
ltrim("hola","ho") devuelve "la"

rtrim(cadena,) --> Idem ltrim pero a la derecha.

chop(cadena,) --> Es una alias de rtrim

trim(cadena,) --> Combina ltrim y rtrim

ord(cadena) --> Devuelve el código ASCII del primer char de la cadena que se le pasa (Idem ASC de VB)

print(cadena) --> Idem echo pero acepta un sólo parámetro.

sprintf(formato, cadena) --> Devuelve cadena con formato (necesita un echo)
% literal (%'relleno)
%b binario
%c Valor ASCII
%d decimal
%f float
%o octal
%s cadena de chars --> sprintf("%10s",$a) diez espacios + $a (negativo ajusta a izquierda)
%x hexa
%X hexa en mayúscula

printf(formato, cadena) --> Es un print con formato. A diferencia de sprintf, imprime (no necesita echo)

split(valor, cadena) --> Divide una cadena y devuelve un array (Idem VB)

strtolower(cadena) --> Pasa a minúscula

strtoupper(cadena) --> Pasa a mayúscula

strchr(cadena, valor) --> Busca aparición de valor en cadena. Devuelve la cadena a partir de la ocurrencia
o false. Ej: strchr("hola","o") devuelve "ola"

strstr(cadena, valor) --> Alias de strchr

strpos(cadena, valor, desplazamiento) --> Devuelve posición de aparición de valor en cadena (Idem InStr de VB)

substr(cadena, comienzo, largo) --> Devuelve porción de cadena. (Idem Mid de VB)

ucfirst(cadena) --> Pasa a mayúscula la primera letra

ucwords(cadena) --> Pasa a mayúscula la primera letra de cada palabra

number_format(numero, decimales, sep decimales, sep miles) --> Devuelve número formateado


[ARRAYS]

count(array) --> Cantidad de datos en un array (como Ubound de VB)

reset(array) --> Ubica el puntero en la 1er posición

current(array) --> Devuelve posición actual

end(array) --> Posiciona puntero en el último elemento

next(array) --> Avanza el puntero una posición (si no hay más FALSE)

prev(array) --> Retrocede el puntero una posición (si no hay más FALSE)

array(=>valor,=>valor) -->Arma un array (indice es opcional)

list(variables) = array --> Mete contenido de un array en variables:
$lista = array(1,2,4,378);
list($a,$b,$c,$d) = $lista;
echo $a . $b . $c . $d ;

sort(array) --> Ordena contenido de un array de < a >

asort(array) --> Idem sort pero no cambia subindices

rsort(array) --> Ordena contenido de un array de > a <

arsort(array) --> Idem rsort pero no cambia subindices

ksort(array) --> Ordena contenido de un array de < a > basandose en las claves y no en los valores

krsort(array) --> Ordena contenido de un array de > a < basandose en las claves y no en los valores

range(r1, r2) --> Genera una matriz de nros de un rango dado

shuffle(array) --> Desordena una matriz de forma random

sizeof(array) --> Cantidad de elementos en un array

isset(var) --> Verifica si existe un elemento de un array o una variable existe

unset(var1, var2) --> Destruye variables o elementos de un array

in_array(valor, array) --> Devuelve si un valor está en el array (TRUE/FALSE)

key(array) --> Devuelve clave de un array asociativo




fopen(archivo, modo) --> Puede abrir un archivo remoto (http://host.com/lala.txt o ftp://) (TRUE/FALSE)
--> Si es local, las barras van dobles: // es /, como /" es "
modos:
r Solo lectura, puntero al comienzo
r+ Lectura y escritura, puntero al comienzo
w Solo escritura, puntero al comienzo
w+ Escritura y lectura, puntero al comienzo
a Solo escritura, puntero al final
a+ Escritura y lectura, puntero al final

$ptr = fopen("C:\\Prueba.txt","w") --> $ptr es el puntero

fclose(puntero) --> Cierra archivo (TRUE/FALSE)

fpassthru(puntero) --> Leer todo desde la posición actual del puntero y lo muestra.
--> Hace fclose automáticamente

fread(puntero, largo) --> Lee en modo binario. Devuelve la cantidad de caracteres pedida en largo
--> Sino (TRUE/FALSE)

fgetc(puntero) --> Trae el primer caracter de un archivo.

fgets(puntero, largo) --> Trae una línea completa de una archivo.

file(archivo) --> Lee archivo y guarda contenido en un array.

fwrite(puntero, cadena, ) --> Escribe en un archivo

fputs(puntero, cadena, [lergo]) --> Idem fwrite

rewind(puntero) --> Pone puntero al comienzo (TRUE/FALSE)

fseek(puntero, posicion) --> Pone puntero en una posición (TRUE/FALSE)

ftell(puntero) --> Devuelve posición actual del puntero

foef(puntero) --> Verifica si es EOF (TRUE/FALSE)

copy(origen, destino) --> Copia un archivo. Si existe, reescribe (TRUE/FALSE)

rename(original, nuevo) --> Renombra un archivo (TRUE/FALSE)

unlink(archivo) --> Borra un archivo (TRUE/FALSE)

file_exists(archivo) --> Verifica si existe un archivo o directorio (TRUE/FALSE)

filesize(archivo) --> Devuelve tamaño en bytes de un archivo (TRUE/FALSE)

pathinfo(path) --> Devuelve info sobre un pah en un array.
dirname Directorio (sin archivo)
basename Nombre de archivo
extension Extensión archivo

opendir(path) --> Abre puntero a directorio (FALSE) Permite recorrer files de un directorio
opendir(".") Path del programa php

readdir(puntero) --> Devuelve nombres de los archivos y directorios en el path.

rewinddir(puntero) --> Rebobina puntero al principio.

is_dir(path) --> Devuelve TRUE si se la pasa un path a un directorio

is_file(path) --> Devuelve TRUE si se la pasa un path a un archivo

mkdir(path, modo) --> Crea un directorio (modo en windows se ignora)

getcwd() --> Devuelve el directorio actual.

chdir(directorio) --> Cambia a directorio especificado

rmdir(directorio) --> Borra directorio especificado, pero debe estar vacío. (TRUE/FALSE)

clearstatcache --> file_exists, is_dir, filesize usan una cache. Con esta función se vacía

disk_free_space(disco) --> Devuelve espacio disponible en el disco




mysql_connect(host, usuario, clave) --> Abre conexión (TRUE/FALSE)

mysql_close() --> Cierra conexión. Si no se le pasa parámetros, cierra la última abierta (TRUE/FALSE)

mysql_select_db(db, ) --> Selecciona una base de datos. (TRUE/FALSE)

mysql_query(sql, ) --> Envía query. Devuelve resultado (si es un SELECT) o FALSE. Sino, TRUE o FALSE

mysql_num_rows(rs) --> Devulve nro de registros de un resultado

mysql_affected_rows() --> Devuelve registros afectados en la última operación. INSERT devuelve -1

mysql_result(rs, registro, campo) --> Devuelve un campo del resultado. Campo puede ser un numero o el nombre

mysql_fetch_array(rs, ) --> Trae un fila del rs y la asigna a un array asociativo. Cada vez que se ejecuta hace
--> un movenext. Al terminar devuelve FALSE

mysql_fetch_row(rs) --> Trae un fila del rs y la asigna a un array asociativo. Cada vez que se ejecuta hace
--> un movenext. Al terminar devuelve FALSE

mysql_field_name(rs, clave) --> Devuelve nombre de campo

mysql_field_type(rs, clave) --> Devuelve tipo de campo

mysql_errno() --> Nro de error. Si no hay error, devuelve 0

mysql_error() --> Mensaje de error. Si no hay error, devuelve string vacío

mysql_create_db(nombre, ) --> Crea una base de datos

mysql_drop_db(nombre, ) --> Borra una base de datos

mysql_free_result(rs) --> Elimina de memoria tabla de resultado




mail(para, asunto, mensaje,[cabecera]) --> Manda un mail.
cabecera = "FROM pepe \NREPLY-TO: [email protected]\NX-MAILER: PHP/ ". phpversion()
0No comments yet