domingo, 27 de julho de 2014

PHP: include, require, ..._once

Olá pessoal! Estou aqui hoje para falar sobre o php (de novo). Desta vez, vou falar sobre as:
include("inc.php");
include_once("inco.php");
require("req.php");
require_once("reqo.php");

Pois bem.
1. Para que servem?
A INCLUDE serve para que você possa incluir no seu documento o conteúdo de uma página externa.
A INCLUDE_ONCE serve para que você possa incluir no seu documento o conteúdo de uma página externa.
A REQUIRE serve para que você possa incluir no seu documento o conteúdo de uma página externa.
A REQUIRE_ONCE serve para que você possa incluir no seu documento o conteúdo de uma página externa.

Sim. É isso mesmo. Mas claro que elas possuem diferenças.
2. Qual a diferença?

As INCLUDE, somente incluem uma página externa.
As INCLUDE_ONCE, verificam se aquela página ainda não foi inserida. Com ele, só é possível inserir uma vez determinada página.
As REQUIRE, incluem uma página externa, mas caso a página não exista, ela para a execução do script.
As REQUIRE_ONCE, incluem uma página externa UMA vez e caso a página não exista, o script é interrompido - e a página fica incompleta.


Acompanhe meu vídeo explicativo:

=Editando Agora :D= ||Atualizado: Hoje (27/07/2014 , 13:49)||

sexta-feira, 25 de julho de 2014

Pegar o IP de uma pessoa com PHP

Pegar IP por PHP pode não ser tão útil, mas a função existe e eu vou mostrá-la!
►O que é IP◄
A função usada no tutorial pode ser vista aqui:
Meu IP - From Code My Life

Fácil e rápido!

A função consiste em apenas 21 caracteres. Sim, com 21 caracteres é possível encontrar o IP da pessoa!

Mão à obra!

Com a função getenv() é possível pegar o IP da pessoa. Mas ele precisa ser armazenado numa variável, ou usado direto. Vou usar as duas formas:
Função:  getenv()
Atributo específico:  getenv("REMOTE_ADDR"); 
<?php
// Armazenando em uma variável:
$ip = getenv("REMOTE_ADDR");
echo $ip; // Imprime na tela a variável que possui o IP
// Direto
echo getenv("REMOTE_ADDR"); //imprime o IP
?>

Pronto! Rode isso e verá que o IP será exibido*!

(*)NOTA: Ao usar um host local (localhost), o IP exibido será 127.0.0.1, pois o computador não usa a internet (por tanto não usa um internet protocol) ao se conectar com o localhost. Ele usa o protocolo de conexão interna 127.0.0.1, que é o que um programa usa ao se comunicar com outro.
 O mesmo script!

segunda-feira, 21 de julho de 2014

Remover acentos de uma string php

Heey! Vamos ver de forma "rápida" como remover acentos de uma string php.
Primeiro entendendo a lógica:
A função strtr() do php possui duas formas de utilizá-la. Com 2 ou 3 parâmetros. Com 2 é mais cansativo, mas mais simples. Veja as strtr utilizando 2 parâmetros, onde:
string strtr ( string $str , array $replaice_pairs );
Veja:

<?php
$str = "Legião Urbana, Caçarolha e Ílhas";
$replace_pairs = array('á' => 'a',
'à' => 'a',
'â' => 'a',
'ã' => 'a',
'ä' => 'a',
'é' => 'e',
'è' => 'e',
'ê' => 'e',
'ë' => 'e',
'í' => 'i',
'ì' => 'i',
'î' => 'i',
'ï' => 'i',
'ó' => 'o',
'ò' => 'o',
'ô' => 'o',
'õ' => 'o',
'ö' => 'o',
'ú' => 'u',
'ù' => 'u',
'û' => 'u',
'ü' => 'u',
'ç' => 'c',
'Á' => 'A',
'À' => 'A',
'Â' => 'A',
'Ã' => 'A',
'Ä' => 'A',
'É' => 'E',
'È' => 'E',
'Ê' => 'E',
'Ë' => 'E',
'Í' => 'I',
'Ì' => 'I',
'Î' => 'I',
'Ï' => 'I',
'Ó' => 'O',
'Ò' => 'O',
'Ô' => 'O',
'Õ' => 'O',
'Ö' => 'O',
'Ú' => 'U',
'Ù' => 'U',
'Û' => 'U',
'Ü' => 'U',
'Ç' => 'C');

$strtr = strtr($str , $replace_pairs); // E aqui a mágica acontece
echo "Antes: ".$str; // Isso imprime o valor da STRING (Sem converção)
echo "Depois: ".$strtr; // Isso imprime o valor de $STRTR (con a converção)
?>
//Resultado

A forma com 3 parâmetros é mais simples, e o resultado, o mesmo.
Ela conta, obviamente, com 3 parâmetros, sendo:
string strtr string $str string $from string $to );
Ela usa um método de procura parecido com indexOf nas duas strings de substituição. Ela substitui o caractere na posição 0 de $from pelo da mesma posição de $to, e assim por diante.
Veja:
<?php
 $str = "Legião Urbana e Paçoca";
 $from = "áàãâéèêëäíìîïóòõôöúùûüÁÀÃÂÉÈÊËÄÍÌÎÏÓÒÕÔÖÚÙÛÜ";
 $to =   "aaaaeeeeaiiiiooooouuuuAAAAEEEEAIIIIOOOOOUUUU";
 $strtr = strtr($str, $from, $to); // retorna: "Legiao Urbana e Pacoca";
?>
Uma recomendação que dou é deixar o valor de $to exatamente abaixo de $from. Isso evita erros.


Letras maiúsculas distinguem de minúsculas.
Mãos ao Ctrl+C e vamos terminar logo isso!!

Como fazer:
1. Defina uma variável com a string a ser convertida.
2.1. Defina uma variável com um array, colocando a string base, => e a string destino.
3.1. Use strtr() com o primeiro parâmetro como a variável do item 1, e o segundo parâmetro com a variável do item dois.
--OU--
2.2. Defina duas variáveis para serem pesquisadas e substituídas.
3.2. Use strtr() com o primeiro parâmetro como a variável do item 1, o segundo a variável de pesquisa, e o terceiro a variável de substituição.
4. Lembre-se que strtr() retorna uma string.

terça-feira, 15 de julho de 2014

<?php //Funções para sistemas de Arquivos ?> #1

Eae pessoal! Este é meu primeiro post aqui, e já vim trazer uma coisa muito útil do php pra vocês. Esses recursos vão permitir vocês a gerenciarem diretórios.
** É uma série, em que PRETENDO falar sobre todos os recursos de Funções para sistema de arquivo Os recursos abordados no tutorial de hoje serão:

  • Criação de diretórios no servidor
  • Função que pega o diretório atual
  • Remoção de diretórios no servidor
  • Código que lista arquivos e pastas em um diretório do servidor.
Para começar, você precisa ter o Apache instalado e rodando no seu computador.

*mkdir() - Cria diretório especificado

Já sabemos que o php roda direto no servidor. Sendo assim, ele ganha direito de "vasculhar" o servidor.
Uma função interna muito interessante é a mkdir() (significa "make Directory" - Criar Diretório).
Sua sintaxe é a seguinte:
<?php
bool mkdir ( string $pathname [, int $mode [, bool $recursive [, resource $context ]]] )
?>
Calma. Não se deixe levar à loucura com essa sintaxe esquisita!
O padrão é o seguinte:
mkdir($path , 0777 , false , $context);
explicando:
1. mkdir(); indica a função Make Directory - Criar Diretório.
2. O primeiro parâmetro $path, é uma string  que contenha o caminho do diretório a ser criado. Exemplo:
                mkdir("code/nova_pasta");
3. O Segundo parâmetro 0777, é o MODE, isto é: Permissão de acesso, sendo 0777 o maior e padrão.
                mkdir("code/nova_pasta" , 0777 );
MODE é ignorado pelo Windows.
4. O Terceiro parâmetro false é o RECURSIVE, que "Permite a criação de diretórios aninhados especificados no caminho".
                mkdir("code/nova_pasta" , 0777 , false);
5. O quarto parâmetro, é o contexto:
NoteContext support was added with PHP 5.0.0. For a description of contexts, refer to Streams.
(Nota: O suporte ao contexto foi adicionado com o PHP 5.0.0. Para uma descrição de contextos, veja Streams. - www.php.net)

Agora veja um exemplo de criação:
<?php
$atualDir = getcwd();
$mkdir = mkdir("nova_pasta" , 0777);
?>


Explicando o código:

  1. Iniciei um php
  2. Peguei o diretório atual usando uma função que vou abordar mais abaixo
  3. Defini que deve ser criado um diretório /nova_pasta/ no diretório atual.
    (O uso de uma variável não é obrigatório)
  4. Fechei o php
Neste exemplo, a variável $mkdir agora tem um valor true. A função mkdir() retorna TRUE quando há sucesso, e FALSE quando há falha. Assim, é possível informar ao usuário se houve sucesso ou falha assim:
<?php
$mkdir = mkdir($_POST['pathname']);
if($mkdir === true){
      echo "<script> alert('Sucesso ao criar diretório ".$_POST['pathname']."!!!'); </script>";
} else {
      echo "<script> alert('Erro ao criar diretório ".$_POST['pathname']."!!!'); </script>";
}
echo "<script> window.location.href='index.php';";
?>
É criado um diretório que o usuário definiu via formulário. Se houver sucesso, o php imprime um javascript que exibe um alerta informando sucesso. Caso contrário, o php imprime um javascript que exibe um alerta informando erro. Após isso, é impresso outro javascript que retorna à index.

++ Em sucesso retorna true. Em falha retorna false.

  *getcwd() - Encontra o diretório atual

Vou ser breve nesta função.
Código de exemplo:

<?php
$diretorioAtual = getcwd(); //Armazena o diretório que está na barra de endereços à variável $diretorioAtual
echo $diretorioAtual; // Imprime o valor de $diretorioAtual
////////////////// OU /////////////////////////////
echo getcwd();
?>

Acho que nem precisa de mais explicação. A função getcwd() pega o endereço que está na barra de endereços. Ela retorna o diretório atual, OU false em caso de erro.
Em alguns variantes Unix, getcwd() irá retornar FALSE se um dos diretórios pai não for legível ou no modo busca, até mesmo se o diretório atual for.

++ Em sucesso retorna uma string com o diretório atual. Em falha retorna false.

* rmdir() - Remove diretório especificado

É uma função "prima" de mkdir(). Tem a função contrária de mkdir(). Enquanto mkdir() cria diretórios, esta remove.
Sintaxe padrão:
             rmdir($caminhoDoDiretorio);
O outro parâmetro desta função são os Contexts, em que se especifica contextos.
*É necessária permissão para deletar o diretório.

++ Em sucesso retorna true. Em falha retorna false.

*Extra: Código que lista arquivos/pastas

Encontrei esse código na internet. Ele lista primeiro as pastas, e depois os arquivos.
Código:
<?php
// pega o endereço do diretório
$diretorio = getcwd();
// abre o diretório
$ponteiro  = opendir($diretorio);
// monta os vetores com os itens encontrados na pasta
while ($nome_itens = readdir($ponteiro)) {
    $itens[] = $nome_itens;
}

// ordena o vetor de itens
sort($itens);
// percorre o vetor para fazer a separacao entre arquivos e pastas
foreach ($itens as $listar) {
// retira "./" e "../" para que retorne apenas pastas e arquivos
   if ($listar!="." && $listar!=".."){

// checa se o tipo de arquivo encontrado é uma pasta
if (is_dir($listar)) {
// caso VERDADEIRO adiciona o item à variável de pastas
$pastas[]=$listar;
} else{
// caso FALSO adiciona o item à variável de arquivos
$arquivos[]=$listar;
}}}
// lista as pastas se houverem
if ($pastas != "" ) {
foreach($pastas as $listar){
print "Pasta: <a href='$listar'>$listar</a><br>";}
}
// lista os arquivos se houverem
if ($arquivos != "") {
foreach($arquivos as $listar){
print " Arquivo: <a href='$listar'>$listar</a><br>";}
}
?>

Está dado um exemplo de utilização do getcwd().
Na linha 29, você pode alterar o que será exibido nas pastas.
Na linha 35, você pode alterar o que será exibido nos arquivos.











Duvida do que eu escrevi e expliquei (ou pelo menos tentei)? Está no site www.php.net:
mkdir()
getcwd()
rmdir()