• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

kingless

[PHP]Mini Scripts

13 mensagens neste tópico

Este tópico vai servir para eu postar pequenos scripts PHP que eu vou criando quem quiser também postar alguns mini  scripts pode postar a vontade.

Aqui fica o primeiro:

FUNÇÃO: Esta função faz o oposto da função ucfirst

<?php

function lcfirst( $frase ) {
        if(isset( $frase ) AND !is_array( $frase )) {
                $frase = str_replace( substr( $frase, 0, strlen( $frase )-1 ), strtolower( substr( $frase, 0, strlen( $frase )-1 ) ), $frase );
                return $frase;
                } else {
                        return false;
        }
}

$frase = "Esta função faz o oposto de ucfirst!!!";

echo lcfirst( $frase );

?>

FUNÇÃO: Esta função verifica se um email é válido

<?php 

function  ValidarEmail ( $email ) {
        if(preg_match("/[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}/", $email)) {
                return "O email é válido!!";
                } else {
                        return "O email não é válido!!";
  }
}

$email = 'blastelf@hotmail.com';
echo  ValidarEmail( $email );

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

function  ValidarEmail ( $email ) {
        if(preg_match("/[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}/", $email)) {
                return "O email é válido!!";
                } else {
                        return "O email não é válido!!";
  }
}
$email = 'blastelf@hotmail.com';
echo  ValidarEmail( $email );

Isto não vai funcionar com emails do género lolage@pwnage.da.tia.jaquina.mais.velha.q.o.calhau.do.djthyrax.com :P
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

function  ValidarEmail ( $email ) {
        if(preg_match("/[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}/", $email)) {
                return "O email é válido!!";
                } else {
                        return "O email não é válido!!";
  }
}
$email = 'blastelf@hotmail.com';
echo  ValidarEmail( $email );

Isto não vai funcionar com emails do género lolage@pwnage.da.tia.jaquina.mais.velha.q.o.calhau.do.djthyrax.com :P

Não deixa de ser um formato de email valido :P  Por isso o código diz que é válido... mas para resolver esse problema é só utilizar um código que verifica se o endereço endreço de email existe...

http://www.zend.com/zend/spotlight/ev12apr.php

http://www.zend.com/codex.php?id=449&single=1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

FUNÇÃO: Verifica se um email é válido.

	function check_email_address($email) {
  // First, we check that there's one @ symbol, and that the lengths are right
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
    // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
    return false;
  }
  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
     if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
      return false;
    }
  }  
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}

Uma função que deve funcionar com todos os tipos de email. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@Triton: A do kingless funciona, eu é que não tinha visto um . no preg_match :)

EDIT: Não me lembrei dos emails do género djthyrax@123.45.67.89 ;) Neste caso, a do kingless n funca :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui fica um que retorna a tag id3 de um ficheiro .mp3

Função: Retornar as tags id3 dum ficheiro .mp3

 <?
# getid3 - get id3 v1.1 tag information of an .mp3 file
# in: filename
# out: array(songname, artis, album, year, comment, genre) else false
function getid3 ($file)
{
if (file_exists($file))
{
/* this is done because filesize($fp) gave me false - lost my patiance - ;-( */
$fp=fopen($file,"a+"); $id_start=ftell($fp)-128; fclose($fp);
/* "real" code starts here */
$fp=fopen($file,"r");
fseek($fp,$id_start);
$tag=fread($fp,3);
if ($tag=="TAG")
{
$id3songname=fread($fp,30);
$id3artist=fread($fp,30);
$id3album=fread($fp,30);
$id3year=fread($fp,4);
$id3comment=fread($fp,30);
$id3genre=fread($fp,1);
$idtag=array(0=>$id3songname,1=>$id3artist,2=>$id3album,3=>$id3year,4=>$id3comment,5=>$id3genre);
return $idtag;
} else return false;
fclose($fp);
} else return false;
}
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@Triton: A do kingless funciona, eu é que não tinha visto um . no preg_match ;)

Não funciona com todos os tipos de endereços de email. Para mais informações: Email Address Validation.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Este cria as tags id3 num ficheiro .mp3 para download, sem afectar o ficheiro original

FUNÇÃO: Colocar uma tag id3 num ficheiro .mp3

<?
// Script Name: AcidicChip's MP3 ID3v2 Tag Writer 1.0
//
// Script Author: Chance O. One (acidicchip@acidicchip.com)
//
// Script Description: This script will take an MP3 file, with the ID3v2 Tags you want and output them into 
// a single MP3 file to download. This script will *NOT* edit the MP3 file itself. If 
// you wish to make this script write the tags to the physical file, instead of the file 
// that it outputs to download, you will have to make the changes yourself. Please do 
// not e-mail me, asking me how to do it. Feel free to e-mail me, and let me know of 
// any bugs it may have.
// Change the line below to the path of your MP3 file. eg: $MP3 = "music/mp3/file.mp3";
$MP3 = "TetrisXP.mp3";
// The function below is a reverse function of bin2hex. It will convert hex to binary.
function hex2bin($data) {
$len = strlen($data);
for($i=0;$i<$len;$i+=2) {
	$newdata .= pack("C",hexdec(substr($data,$i,2)));
}
return $newdata;
}

// Change the variable values below to what you want for the ID3v2 Tags.
$TrackNum = "01";
$Title = "This is the title";
$Artist	= "This is the artist";
$Album = "This is the album";
$Year = "2002";
$Genre = "This is the genre";
$Comment = "This is the comment";
$Composer = "This is the composer";
$OrigArtist = "This is the original artist";
$Copyright = "This is the copyright";
$URL = "This is the url";
$EncodedBy = "This is the encoded by";

// The variables below are converting the values you entered for the tags (above) into hex, in order to 
// have a better reassurance that your MP3 won't sound funny.
$TrackNumHEX = bin2hex($TrackNum);
$TitleHEX = bin2hex($Title);
$ArtistHEX	= bin2hex($Artist);
$AlbumHEX = bin2hex($Album);
$YearHEX = bin2hex($Year);
$GenreHEX = bin2hex($Genre);
$CommentHEX = bin2hex($Comment);
$ComposerHEX = bin2hex($Composer);
$OrigArtistHEX = bin2hex($OrigArtist);
$CopyrightHEX = bin2hex($Copyright);
$URLHEX = bin2hex($URL);
$EncodedByHEX = bin2hex($EncodedBy);

// The variables below are creating a hex value for the length of each of the values you entered for the 
// tags (above).
$TrackNumLenHEX = bin2hex(chr((strlen($TrackNum) + 1)));
$TitleLenHEX = bin2hex(chr((strlen($Title) + 1)));
$ArtistLenHEX	= bin2hex(chr((strlen($Artist) + 1)));
$AlbumLenHEX = bin2hex(chr((strlen($Album) + 1)));;
$YearLenHEX = bin2hex(chr((strlen($Year) + 1)));;
$GenreLenHEX = bin2hex(chr((strlen($Genre) + 1)));
$CommentLenHEX = bin2hex(chr((strlen($Comment) + 5)));
$ComposerLenHEX = bin2hex(chr((strlen($Composer) + 1)));
$OrigArtistLenHEX = bin2hex(chr((strlen($OrigArtist) + 1)));
$CopyrightLenHEX = bin2hex(chr((strlen($Copyright) + 1)));
$URLLenHEX = bin2hex(chr((strlen($URL) + 2)));
$EncodedByLenHEX = bin2hex(chr((strlen($EncodedBy) + 1)));

// The lines below is the creation of the ID3v2 tags. The tags are usually in this hex format:
// XXXXXXXX000000YY0000ZZZZZZZZZZZZZZZZZZZZ
// X = The marking for the tag, telling the MP3 player that this tag is right here
// Y = The length of the text inputted for the tag (Usually +1)
// Z = The content of the tag
$Data = "49443303000000000E7A";
$Data .= "5452434B000000" . $TrackNumLenHEX . "000000" . $TrackNumHEX;
$Data .= "54454E43000000" . $EncodedByLenHEX . "400000" . $EncodedByHEX;
$Data .= "57585858000000" . $URLLenHEX . "00000000" . $URLHEX;
$Data .= "54434F50000000" . $CopyrightLenHEX . "000000" . $CopyrightHEX;
$Data .= "544F5045000000" . $OrigArtistLenHEX . "000000" . $OrigArtistHEX;
$Data .= "54434F4D000000" . $ComposerLenHEX . "000000" . $ComposerHEX;
$Data .= "434F4D4D000000" . $CommentLenHEX . "00000000000000" . $CommentHEX;
$Data .= "54434F4E000000" . $GenreLenHEX . "000000" . $GenreHEX;
$Data .= "54594552000000" . $YearLenHEX . "000000" . $YearHEX;
$Data .= "54414C42000000" . $AlbumLenHEX . "000000" . $AlbumHEX;
$Data .= "54504531000000" . $ArtistLenHEX . "000000" . $ArtistHEX;
$Data .= "54495432000000" . $TitleLenHEX . "000000" . $TitleHEX;

// The ID3v2 Tags are EXACTLY 2048 bytes, no matter what. The lines below are filling in the remaining 2048 
// bytes (4096 HEX character).
$FillIn = (4096 - strlen($Data));
$Data .= str_repeat("0", $FillIn);

// The lines below are checking to see if an ID3v2 tag already exists in the MP3.
$MusicFile = fopen($MP3, "r");
If (fread($MusicFile, 3) == "ID3") {
// If the ID3v2 tag does exist, this line tells it to start the file read after 2048 bytes (The length 
// of the ID3v2 tags.)
fseek($MusicFile, 2048);
}

// The line below is converting the tags from HEX to binary.
$FinalOutput = hex2bin($Data);

// The line below is telling your browser that the data that is going to be sent is an MP3 file to download 
// (or play)
header("Content-Type: audio/mp3");

// The line below is uploading your ID3v2 tags.
echo($FinalOutput);
// The line below is uploading your MP3 file right after the tags (both are being sent as one file)
echo(fread($MusicFile,FileSize($MP3)));

fclose($MusicFile);
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

karva e Triton obrigado por postarem aqui os códigos ;)  por favor editem o vosso post e coloquem antes do código

FUNÇÃO: E_o_que_a_função_faz_aqui   

É que eu estou a pensar em criar uma pequena "search engine" que vai servir para procurar por códigos neste post e FUNÇÃO:... vai facilitar a pesquisa :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora