Seleção de Dicas PHP

Posted on novembro 13, 2012. Filed under: PHP, Tips | Tags:, |

Reuni aqui pequenas dicas de programação em PHP que foram-me úteis nessa semana. Em algum momento podem ser úteis para você também.

  1. Navegando em uma estrutura de diretórios usando DirectoryIterator
  2. É uma alternativa ao conjunto opendir()/readdir(), usando Orientação à Objetos:

    <?php
    $it = new DirectoryIterator("/caminho");
    foreach($it as $file) {
    
    	if(!$it->isDot()) { // diferente de .. ou .
    		
    		if($it->isFile()) { // elemento atual é um arquivo
    			echo "Arquivo: $file" . PHP_EOL;
    		}	
    		
    		if($it->isDir()) { // elemento atual
    			echo "Diretório: $file" . PHP_EOL;
    		}
    	}
    }
    

    Mais métodos da classe DirectoryIterator:
    http://php.net/manual/pt_BR/class.directoryiterator.php

  3. Obtendo valores repetidos dentro de um array
  4. Função útil para obter valores repetidos dentro de um array, independente do valor da chave.

    <?php
    $a = array("morango", "laranja", "pera", "beterraba", "banana", "morango");
    
    $repetidos = array_diff_assoc($a, array_unique($a));
    $repetidos = array_unique($repetidos);
    var_dump($repetidos);
    

    A função acima irá obter os elementos com valores repetidos. No caso do exemplo, somente o elemento com o valor “morango” se repete no array:

    array(1) {
    [5] =>
    string(7) "morango"
    }

  5. Obtendo as chaves de um array, especificando um valor do elemento
  6. Complementando a dica anterior, vamos obter o valor da chave de cada elemento repetido encontrado no array:

    $a = array("morango", "laranja", "pera", "beterraba", "banana", "morango");
    $repetidos = array_diff_assoc($a, array_unique($a));
    $repetidos = array_unique($repetidos);
    
    foreach($repetidos as $valor_repetido) {
    	echo "Elemento Repetido: $valor_repetido" . PHP_EOL;
    	$keys = array_keys($a, $valor_repetido);
    	var_dump($keys);
    }
    

    No caso do código acima, o elemento morango esta repetido nos índices 0 e 5 do array $a:

    Elemento Repetido: morango
    array(2) {
    [0] =>
    int(0)
    [1] =>
    int(5)
    }

  7. Removendo os últimos N Bytes de um arquivo
  8. Esta dica é para caso precise remover alguns bytes do final de um arquivo sem a necessidade de duplicá-lo. Isso pode ser facilmente realizado através da função ftruncate:

    (No caso abaixo, serão removidos os últimos 512bytes do arquivo)

    <?php
    
    $filename = "/caminho/para/o/arquivo";
    
    $handle = fopen($filename, 'r+');
    ftruncate($handle, filesize($filename) - 512);
    fclose($handle);
    

Make a Comment

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Liked it here?
Why not try sites on the blogroll...

%d blogueiros gostam disto: