Php Avancado

Embed Size (px)

Citation preview

PHP Avanado

1/165

PHP Avanado

ndice 9.1 - Arrays. . . . . . . . . 9.2 - Formulrios. . . . . . . . 9.3 - Arquivos. . . . . . . . . 9.4 - Diretrios. . . . . . . . 9.5 - Path. . . . . . . . . . 9.6 - Includes. . . . . . . . . 9.7 - Funes. . . . . . . . . 9.8 - Session. . . . . . . . . 9.9 - Cookies. . . . . . . . . 9.10 - Tratamento de Erros. . . . . 9.11 - Validao de Dados.. . . . . 9.12 - XML. . . . . . . . . 9.13 - Constantes Mgicas. . . . . 9.14 - Formatao. . . . . . . . 9.15 - Imagens e Grficos. . . . . . 9.16 - Nmeros. . . . . . . . 9.17 - Permisses de Arquivos e Diretrios. 9.18 - Strings. . . . . . . . . 9.19 - URLs. . . . . . . . . 9.21 - Criptografia. . . . . . . 9.22 E-mails.. . . . . . . . 9.23 Data e Hora. . . . . . . Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 21 32 56 61 66 67 78 83 84 95 102 107 109 112 126 130 134 142 144 153 157 178

Ribamar FS http://cursodephp.ribafs.org

PHP Avanado

2/165

9.1 - Trabalhando com Arrays em PHP 1 Trabalhando com Arrays 2 Algumas das funes 3 array_fill -- Preenche um array com valores 4 array_merge -- Funde dois ou mais arrays 5 array_pad -- Expande um array para um certo comprimento utilizando um determinado valor 6 array_pop -- Retira um elemento do final do array 7 array_push -- Adiciona um ou mais elementos no final de um array 8 array_reverse -- Retorna um array com os elementos na ordem inversa 9 array_search 10 array_shift -- Retira o primeiro elemento de um array 11 array_sum -- Calcula a soma dos elementos de um array 12 array -- Cria um array 13 arsort 14 asort 15 count -- Conta o nmero de elementos de uma varivel 16 current -- Retorna o elemento corrente em um array 17 each -- Retorna o par chave/valor corrente de um array e avana o seu cursor 18 Percorrendo um array com each() 19 end -- Faz o ponteiro interno de um array apontar para o seu ltimo elemento 20 key -- Retorna uma chave da posio atual de um array associativo 21 next -- Avana o ponteiro interno de um array 22 prev -- Retrocede o ponteiro interno de um array 23 sizeof -- Apelido de count() 24 sort -- Ordena um array pelo seu valor 25 Exemplo de array multidimensional 26 Exemplo de Array 27 Convertendo objetos para um array

Trabalhando com ArraysUm array uma varivel, mas diferente das demais ele armazena uma coleo de valores e no somente um. E ainda por cima podem conter outras variveis e de tipos diferentes. Detalhe importante: Quando em uma funo precisarmos rtornar mais de um valor array a sada, basta retornar todos os valors em forma de array. Alm disso semelhante ao que estudamos na matemtica: linhas e colunas. Matriz 3x4 (3 linhas e 4 colunas). Um array no PHP um mapa ordenado, que relaciona valores com chaves (em linhas e colunas). Especificando um array() array([chave =>] valor, ...); Ribamar FS http://cursodephp.ribafs.org

PHP Avanado

3/165

A chave pode ser uma string ou um inteiro. O valor pode ser qualquer coisa. Algumas das funes Essas funes abaixo permitem a interao e manipulao de arrays de vrias formas. Arrays so essenciais para armazenar, gerenciar, operar sobre um conjunto de variveis. Arrays (matrizes) simples e multidimensionais so suportados e podem ser criados pelo usurio ou por outras funes. Existem diversas funes especficas para bancos de dados, que preenchem arrays com os dados retornados em consultas, e vrios outros tipos de funes tambm retornam arrays.

array_fill -- Preenche um array com valoresarray array_fill ( int start_index, int num, mixed value )

array_merge -- Funde dois ou mais arraysarray array_merge ( array array1, array array2 [, array ...] )

No esquea que as chaves numricas sero reordenadas!Array ( [0] => data )

Se voc quer preservar os arrays e apenas concaten-los, o operador +:

As chaves numricas sero preservadas e as associaes originais permanecem.

Ribamar FS http://cursodephp.ribafs.org

PHP Avanado

4/165

array_pad -- Expande um array para um certo comprimento utilizando um determinado valorarray array_pad ( array input, int pad_size, mixed pad_value ) Exemplo 1. Exemplo de array_pad()

array_pop -- Retira um elemento do final do arraymixed array_pop ( array array )

array_push -- Adiciona um ou mais elementos no final de um arrayint array_push ( array array, mixed var [, mixed ...] )

array_reverse -- Retorna um array com os elementos na ordem inversaarray array_reverse ( array array [, bool preserve_keys] )

5/165

array_search-- Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado. Caso contrrio retorna FALSE. mixed array_search ( mixed procurar_este, array procurar_neste [, bool strict] ) Titulo a1b1c1 a2c2 a3b3c3 &systemEntity; Sobre este documento ler_xml.php Ler XML usando simplexml: xml_lido.php

105/165

filme[0]->titulo; print '
'; echo $xml->filme[0]->personagens[0]->personagem[0]->nome; print '
'; echo $xml->filme[0]->votos[0]; print '
'; echo $xml->filme[0]->votos[1]; ?>

106/165

Ribamar FS http://cursodephp.ribafs.org

PHP Avanado

107/165

9.13 Trabalhando com Constantes Mgicas e Superglonais em PHPVariveis do servidor $_SERVER Este um array (vetor) 'superglobal', ou automaticamente global. Isto significa que ele disponvel em todos os escopos (nveis) de um script. Voc no precisa fazer um: ... global $_SERVER; ... para poder acess-lo dentro de funes ou mtodos, como era necessrio com $HTTP_SERVER_VARS. O array superglobal $_SERVER existe em qualquer sesso PHP e j contm um conjunto de chaves (ndices) pr definidos e valorados. Os ndices mais importantes so: 'REQUEST_URI' O URI fornecido para acessar a pgina atual, por exemplo, '/index.html'. 'SCRIPT_NAME' Contm o caminho completo do script atual. til para pginas que precisam apontar para elas mesmas (dinamicamente). A constante __FILE__ contm o caminho completo e nome do arquivo (mesmo includo) atual. 'PHP_SELF' O nome do arquivo do script atualmente em uso, relativo ao document root. Por exemplo, $_SERVER['PHP_SELF'] em um script com o endereo http://example.com/test.php/foo.bar pode ser /test.php/foo.bar. A constante __FILE__ contm o caminho completo e nome do arquivo (mesmo includo) atual. Se estiver rodando o PHP em linha de comando, esta varivel no est disponvel. 'SERVER_NAME' O nome host do servidor onde o script atual executado. Se o script est rodando em um host virtual, este ser o valor definido para aquele host virtual. 'REQUEST_METHOD' Contm o mtodo de request utilizando para acessar a pgina. Geralmente 'GET', 'HEAD', 'POST' ou 'PUT'. 'QUERY_STRING' A query string (string de solicitao), se houver, pela qual a pgina foi acessada. 'DOCUMENT_ROOT' O diretrio raiz sob onde o script atual executado, como definido no arquivos de configurao do servidor. 'SCRIPT_FILENAME' O caminho absoluto o script atualmente em execuo. Nota: Se o script for executado pela CLI com um caminho relativo, como file.php ou ../file.php, $_SERVER['SCRIPT_FILENAME'] ir conter o caminho relativo especificado pelo usurio.

Ribamar FS http://cursodephp.ribafs.org

PHP Avanado

108/165

Exemplos$current_script = dirname($_SERVER['SCRIPT_NAME']); $current_path = dirname($_SERVER['SCRIPT_FILENAME']);

$request_uri = $_SERVER['REQUEST_URI']; // Pick the predefined variable that works on your server return $_ENV['SCRIPT_URL']; $_SERVER['QUERY_STRING']) $sPathPS = $_SERVER[PHP_SELF]; $sPathFS = __FILE__; echo 'http'; if($_SERVER['HTTPS']=='on'){echo 's';} echo '://'.$_SERVER['SERVER_PORT'].$_SERVER['SCRIPT_NAME']; if($_SERVER['QUERY_STRING']>' '){echo '?'.$_SERVER['QUERY_STRING'];}

Constantes Mgicas__LINE__ A linha atual do script. __FILE__ O caminho completo e nome do arquivo. Se utilizado dentro de um include, o nome do arquivo includo ser retornado. __FUNCTION__ O nome da funo (Acrescentado no PHP 4.3.0). A partir do PHP 5 esta constante retorna o nome da funo como ela foi declarada (sensvel a maisculas e minsculas). No PHP 4 sempre retorna o nome em minsculas. __CLASS__ O nome da classe (Acrescentado no PHP 4.3.0). A partir do PHP 5 esta constante retorna o nome da funo como ela foi declarada (sensvel a maisculas e minsculas). No PHP 4 sempre retorna o nome em minsculas. __METHOD__ O nome do mtodo de classe. (Acrescentado no PHP 5.0.0). O nome do mtodo retornado como foi declarado (sensvel a maisculas e minsculas). Exemplo: if (realpath(__FILE__) == realpath($_SERVER['SCRIPT_FILENAME'])) { exit; }

Ribamar FS http://cursodephp.ribafs.org

PHP Avanado

109/165

9.14 Trabalhando com Formatao de Sada em PHPTemos as trs funes - printf, sprintf e vprintf printf -- Mostra uma string formatada void printf ( string format [, mixed args] ) sscanf -- Interpreta a entrada de uma string de acordo com um formato mixed sscanf ( string str, string formato [, string var1] ) Se paretros opcionais so passados, a funo retornar o nmero de valores assumidos. Os parmetros opcionais devem ser passados por referncia. Exemplo 2. sscanf() - usando parmetros opcionais sprintf -- Retorna uma string formatada string sprintf ( string format [, mixed args] ) Um especificador de tipo que diz que o argumento deve ser tratado como do tipo. Os tipos possivis so: % - Um caractere porcento. No requerido neenhum argumento. b - O argumento tratado com um inteiro, e mostrado como um binrio. c - O argumento tratado como um inteiro, e mostrado como o caractere ASCII correspondente. d - O argumento tratado como um inteiro, e mostrado como um nmero decimal com sinal. u - O argumento tratado com um inteiro, e mostrado como um nmero decimal sem sinal. f - O argumento tratado como um float, e mostrado como um nmero de ponto flutuante. o - O argumento tratado com um inteiro, e mostrado como un nmero octal. s - O argumento tratado e mostrado como uma string. x - O argumento tratado como um inteiro, e mostrado como um nmero hexadecimal (com as letras minsculas). X - O argumento tratado como um inteiro, e mostrado como um nmero hexadecimal (com as letras maisculas). Este deve mostrar, "There are 5 monkeys in the tree". Mas imagine que ns estejamos criando a string de formatao em um arquivo separado, normalmente para internacionalizar e rescrevemos como: Exemplo 2. Troca de argumentos Agora ns temos um problema. A ordem dos argumentos na string de formatao no combina com os argumentos no cdigo. Ns gostariamos de deixar o cdigo como esta e simplesmente indicar na Ribamar FS http://cursodephp.ribafs.org

PHP Avanado

111/165

string de formatao quais argumentos pertencem aonde. Podemos escrever a string de formatao assim: Exemplo 3. Troca de argumento Um beneficio adicional disto ue voc pode repetir os especificadores de converso sem adicionar mais argumentos em seu cdigo. Por exemplo: Exemplo 4. Troca de argumento