




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Informações sobre como manipular arrays e variáveis em php. Ele inclui exemplos de como ordenar elementos de um array, criar e utilizar funções, definir constantes, e trabalhar com valores default de parâmetros. Além disso, é discutido o uso de comandos como split(), fopen(), filesize() e copy() para ler e manipular arquivos. O documento também aborda o uso de estruturas condicionais e laços de repetição.
Tipologia: Notas de estudo
1 / 104
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































































Strings
Nome do tipo Espaço utilizado CHAR(M) M bytes, 1 <= M <= 255 VARCHAR(M) L+1 bytes, onde L <= M e 1 <= M <= 255 TINYBLOB, TINYTEXT L+1 bytes, onde L < 2^ BLOB, TEXT L+2 bytes, onde L < 2^ MEDIUMBLOB, MEDIUMTEXT L+3 bytes, onde L < 2^ LONGBLOB, LONGTEXT
L+4 bytes, onde L < 2^
ENUM('value1','value2',...) 1 ou 2 bytes SET('value1','value2',...) 1, 2, 3, 4 ou 8 bytes
Numéricos
Nome do tipo Espaço utilizado TINYINT 1 byte SMALLINT 2 bytes MEDIUMINT 3 bytes INT 4 bytes INTEGER 4 bytes BIGINT 8 bytes FLOAT(X) 4 if X <= 24 or 8 if 25 <= X <= 53 FLOAT 4 bytes DOUBLE 8 bytes DOUBLE PRECISION 8 bytes REAL 8 bytes DECIMAL(M,D) M bytes (D+2, if M < D) NUMERIC(M,D) M bytes (D+2, if M < D)
Data e Hora
Nome do tipo Espaço utilizado DATE 3 bytes DATETIME 8 bytes TIMESTAMP 4 bytes TIME 3 bytes YEAR 1 byte
asort void asort(array &arr); Tem o funcionamento bastante semelhante à função sort. Ordena os elementos de um array em ordem crescente, porém mantém os relacionamentos com os índices.
arsort void arsort(array &arr); Funciona de maneira inversa à função asort. Ordena os elementos de um array em ordem decrescente e mantém os relacionamentos dos elementos com os índices.
ksort void ksort(array &arr); Função de ordenação baseada nos índices. Ordena os elementos de um array de acordo com seus índices, em ordem crescente, mantendo os relacionamentos.
usort void usort(array &arr, function compara); Esta é uma função que utiliza outra função como parâmetro. Ordena os elementos de um array sem manter os relacionamentos com os índices, e utiliza para efeito de comparação uma função definida pelo usuário, que deve comparar dois elementos do array e retornar 0, 1 ou –1, de acordo com qualquer critério estabelecido pelo usuário.
uasort void uasort(array &arr, function compara); Esta função também utiliza outra função como parâmetro. Ordena os elementos de um array e mantém os relacionamentos com os índices, utilizando para efeito de comparação uma função definida pelo usuário, que deve comparar dois
índice do valor atual, e os elementos de índices 1 e “value” contém o valor do elemento atual indicado pelo ponteiro. Esta função pode ser utilizada para percorrer todos os elementos de um array e determinar se já foi encontrado o último elemento, pois no caso de haver um elemento vazio, a função não retornará o valor false. A função each só retorna false depois q o último elemento do array foi encontrado.
Exemplo: /*função que percorre todos os elementos de um array e imprime seus índices e valores */ function imprime_array($arr) { reset($arr); while (list($chave,$valor) = each($arr)) echo “Chave: $chave. Valor: $valor”; }
Funções de ordenação
São funções que servem para arrumar os elementos de um array de acordo com determinados critérios. Estes critérios são: manutenção ou não da associação entre índices e elementos; ordenação por elementos ou por índices; função de comparação entre dois elementos.
sort void sort(array &arr); A função mais simples de ordenação de arrays. Ordena os elementos de um array em ordem crescente, sem manter os relacionamentos com os índices.
rsort void rsort(array &arr); Funciona de maneir ainversa à função sort. Ordena os elementos de um array em ordem decrescente, sem manter os relacionamentos com os índices.
A função range cria um array cujos elementos são os inteiros pertencentes ao intervalo fornecido, inclusive. Se o valor do primeiro parâmetro for maior do que o do segundo, a função retorna false (valor vazio).
shuffle void shuffle(array &arr); Esta função “embaralha” o array, ou seja, troca as posições dos elementos aleatoriamente e não retorna valor algum.
sizeof int sizeof(array arr); Retorna um valor inteiro contendo o número de elementos de um array. Se for utilizada com uma variável cujo valor não é do tipo array, retorna 1. Se a variável não estiver setada ou for um array vazio, retorna 0.
Funções de “navegação”
Toda variável do tipo array possui um ponteiro interno indicando o próximo elemento a ser acessado no caso de não ser especificado um índice. As funções seguintes servem para modificar esse ponteiro, permitindo assim percorrer um array para verificar seu conteúdo (chaves e elementos).
reset mixed reset(array arr); Seta o ponteiro interno para o primeiro elemento do array, e retorna o conteúdo desse elemento.
end mixed end(array arr); Seta o ponteiro interno para o último elemento do array, e retorna o conteúdo desse elemento.
Funções Genéricas
Array array array(...); É a função que cria um array a partir dos parâmetros forncidos. É possível fornecer o índice de cada elemento. Esse índice pode ser um valor de qualquer tipo, e não apenas de inteiro. Se o índice não for fornecido o PHP atribui um valor inteiro sequencial, a partir do 0 ou do último índice inteiro explicitado. Vejamos alguns exemplos:
Exemplo 1 $teste = array("um", "dois","tr"=>"tres",5=>"quatro","cinco");
Temos o seguinte mapeamento: 0 => “um” (0 é o primeiro índice, se não houver um explicito) 1 => “dois” (o inteiro seguinte) “tr” => “tres” 5 => “quatro” (valor explicitado) 6 => “cinco” (o inteiro seguinte ao último atribuído, e não o próximo valor, que seria 2)
Exemplo 2 $teste = array("um", 6=>"dois","tr"=>"tres",5=>"quatro","cinco");
Temos o seguinte mapeamento: 0 => “um” 6 => “dois” “tr” => tres 5 => “quatro” (seria 7, se não fosse explicitado) 7 => “cinco” (seria 6, se não estivesse ocupado)
Em geral, não é recomendável utilizar arrays com vários tipos de índices, já que isso pode confundir o programador. No caso de realmente haver a necessidade de utilizar esse recurso, deve-se ter bastante atenção ao manipular os índices do array.
range array range(int minimo, int maximo);
strtolower string strtolower(string str); Retorna a string fornecida com todas as letras minúsculas. Exemplo: strtolower(“Teste”); // retorna “teste”
strtoupper string strtoupper(string str); Retorna a string fornecida com todas as letras maiúsculas.
Exemplo: strtolower(“Teste”); // retorna “TESTE”
ucfirst string ucfirst(string str); Retorna a string fornecida com o primeiro caracter convertido para letra maiúscula.
Exemplo: ucfirst(“teste de funcao”); // retorna “Teste de funcao”
ucwords string ucwords(string str); Retorna a string fornecida com todas as palavras iniciadas por letras maiúsculas.
Exemplo: ucwords(“teste de funcao”); // retorna “Teste De Funcao”
Funções para edição de strings
chop string chop(string str); Retira espaços e linhas em branco do final da string fornecida.
Exemplo: chop(“ Teste \n \n “); // retorna “ Teste”
ltrim string ltrim(string str); Retira espaços e linhas em branco do final da string fornecida.
Exemplo: ltrim(“ Teste \n \n “); // retorna “Teste \n \n”
trim string trim(string str);
Retira espaços e linhas em branco do início e do final da string fornecida.
Exemplo: trim(“ Teste \n \n “); // retorna “Teste”
strrev string strrev(string str); Retorna a string fornecida invertida.
Exemplo: strrev(“Teste”); // retorna “etseT”
explode array explode(string padrao, string str); Funciona de maneira bastante semelhante à função split, com a diferença que não é possível estabelecer um limite para o número de elementos do array.
Comparações entre strings
similar_text int similar_text(string str1, string str2, double [porcentagem]);
Compara as duas strings fornecidas e retorna o número de caracteres coincidentes. Opcionalmente pode ser fornecida uma variável, passada por referência (ver tópico sobre funções) , que receberá o valor percentual de igualdade entre as strings. Esta função é case sensitive , ou seja, maiúsculas e minúsculas são tratadas como diferentes.
Exemplo: $num = similar_text("teste", "testando",&$porc); As variáveis passam a ter os seguintes valores: $num == 4; $porc == 61.
strcasecmp int strcasecmp(string str1, string str2); Compara as duas strings e retorna 0 (zero) se forem iguais, um valor maior que zero se str1 > str2, e um valor menor que zero se str1 < str2. Esta função é case insensitive , ou seja, maiúsculas e minúsculas são tratadas como iguais.
strcmp int strcasecmp(string str1, string str2);
urldecode string urldecode(string str); Funciona de maneira inversa a urlencode, desta vez decodificando a string fornecida do formato urlencode para texto normal.
Funções relacionadas a arrays
Implode e join string implode(string separador, array partes); string join(string separador, array partes); As duas funções são idênticas. Retornam uma string contendo todos os elementos do array fornecido separados pela string também fornecida.
Exemplo: $partes = array("a", "casa número", 13, "é azul"); $inteiro = join(" ",$partes); $inteiro passa a conter a string: “a casa número 13 é azul”
split array split(string padrao, string str, int [limite]); Retorna um array contendo partes da string fornecida separadas pelo padrão fornecido, podendo limitar o número de elementos do array.
Exemplo: $data = “11/14/1975”; $data_array = split(“/”,$data); O código acima faz com que a variável $data_array receba o valor: array(11,14,1975);
Funções relacionadas a HTML
htmlspecialchars string htmlspecialchars(string str); Retorna a string fornecida, substituindo os seguintes caracteres:
para ‘>'
htmlentities string htmlentities(string str); Funciona de maneira semelhante ao comando anterior, mas de maneira mais completa, pois converte todos os caracteres da string que possuem uma representação especial em html, como por exemplo:
nl2br string nl2br(string str); Retorna a string fornecida substituindo todas as quebras de linha (“\n”) por quebras de linhas em html (“
”).
Exemplo: echo nl2br(“Mauricio\nVivas\n”); Imprime: Maurício
Vivas
A pesquisa foi baseada no manual de PHP, disponível em www.php.net , e em diversos tutoriais disponíveis no site www.phpbuilder.com. Esses dois endereços contém uma vasta documentação sobre a linguagem, além de endereços para listas de discussão, onde pode-se solicitar ajuda de programadores mais experientes. Uma boa referência em português é a lista “PHP para quem fala Português” , que pode ser assinada no endereço www.egroups.com/group/php-pt/. Em inglês, além dos endereços citados acima, uma boa fonte é o site PHPWizard , que pode ser encontrado em www.phpwizard.net. Também em inglês, uma documentação mais completa sobre cookies pode ser encontrada em www.netscape.com/newsref/std/cookie_spec.html.
<? $id = fopen($teste, “r”); /* abre o arquivo para leitura */ $teste_conteudo = fread($id,filesize($teste)); /* le o conteudo do arquivo e grava na variavel $conteudo */ fclose($id); /* fecha o arquivo */ ?>
Com o exemplo acima, teremos o conteudo do arquivo enviado armazenado na string $teste_conteudo, podendo assim ser armazenado onde for mais adequado.
<? $arquivo = “teste.gif”; /* este nome deve ser alterado para o nome do arquivo a ser utilizado */ $id = fopen($arquivo, “r”); /* abre o arquivo para leitura */ $conteudo = fread($id,filesize($arquivo)); /* le o conteudo do arquivo e grava na variavel $conteudo */ fclose($id); /* fecha o arquivo */
header(“Content-type: image/gif”); /* esta linha envia um header ao browser informando que o tipo de arquivo que está sendo enviado é uma imagem no formato gif */ echo $conteudo; /* esta última linha envia ao browser o conteúdo do arquivo */ ?>
Para que o exemplo funcione corretamente é preciso que o script seja apenas o que está listado, não podendo haver texto algum (nem mesmo espaço ou linha em branco) antes e depois do script. Visualisando o script pelo browser, teremos a imagem selecionada.
Uploads com formulários HTML
Vimos no capítulo 03 que os formulários HTML têm um tipo de componente utilizado em upload de arquivos. Vimos também que todos os elementos de formulários quando submetidos a scripts PHP criam variáveis com os mesmos nomes. mas no caso do elemento “file”, o tratamento é diferente. Ao ser submetido o formulário, o arquivo uploadeado é gravado num arquivo temporário do disco, que será apagado ao final da execução do script. Além disso, quatro variáveis são criadas no contexto do script PHP. $meuarquivo – nome do arquivo temporario criado; $meuarquivo_name – nome original do arquivo selecionado pelo usuário; $meuarquivo_size – tamanho do arquivo enviado; $meuarquivo_type – tipo do arquivo, se esta informação for fornecida pelo browser; Neste exemplo, “meu arquivo” é o nome do elemento do formulário. Para armazenar o conteúdo de um arquivo numa tabela da base de dados ou até num arquivo definitivo (neste segundo caso é mais simples utilizar a função copy) podemos utilizar o seguinte script, supondo que o campo do formulário tenha o nome “teste”: