Classe para Manipular Videos do Youtube via XML

Filed Under (Novas Tecnologias, PHP, Programação) by Alex P. Torres on 31-07-2010

Ola.
venho hoje disponibilizar uma forma de manipular videos do youtube, em seu site.
procurei na internet algo que  falasse sobre o assunto mais, é um assunto com poucas informações na internet.
foi simples achei um classe em PHP que trata va os videos do youtube, a classe foi feita por um brasileiro.
vamos ao que interessa.

Youtube.classe.php


<?
 class youtube
 {
 public $url;
 public $id;

 public function url2id()
 {
 $aux = explode("?",$this->url);
 $aux2 = explode("&",$aux[1]);
 foreach($aux2 as $campo => $valor)
 {
 $aux3 = explode("=",$valor);
 if($aux3[0] == 'v') $video = $aux3[1];
 }
 return $this->id = $video;
 }

 public function url2id_($url)
 {
 $aux = explode("?",$url);
 $aux2 = explode("&",$aux[1]);
 foreach($aux2 as $campo => $valor)
 {
 $aux3 = explode("=",$valor);
 if($aux3[0] == 'v') $video = $aux3[1];
 }
 return $this->id = $video;
 }

 public function thumb_url($tamanho=NULL)
 {
 $tamanho = $tamanho == "maior"?"hq":"";
 $this->url2id();
 return 'http://i1.ytimg.com/vi/'.$this->id.'/'.$tamanho.'default.jpg';
 }

 public function thumb($tamanho=NULL)
 {
 $tamanho = $tamanho == "maior"?"hq":"";
 $this->url2id();
 return '<img src="http://i1.ytimg.com/vi/'.$this->id.'/'.$tamanho.'default.jpg" border="0" >';
 }

 public function info()
 {
 $feedURL = 'http://gdata.youtube.com/feeds/base/videos?q='.$this->id.'&client=ytapi-youtube-search&v=2';
 $sxml = simplexml_load_file($feedURL);
 foreach ($sxml->entry as $entry)
 {
 $details = $entry->content;
 $info["titulo"] = $entry->title;
 }
 $details_notags = strip_tags($details);
 $texto = explode("From",$details_notags);
 $info["descricao"] = $texto[0];
 $aux = explode("Views:",$texto[1]);
 $aux2 = explode(" ",$aux[1]);
 $info["views"] = $aux2[0];

 $aux = explode("Time:",$texto[1]);
 $aux2 = explode("More",$aux[1]);
 $info["tempo"] = $aux2[0];

 $imgs = strip_tags($details,'<img>');
 $aux = explode("<img",$imgs);
 array_shift($aux);
 array_shift($aux);
 $aux2 = explode("gif\">",$aux[4]);
 array_pop($aux);
 $aux3 = $aux2[0].'gif">';
 $aux[] = $aux3;
 $imagens = '';
 foreach($aux as $campo => $valor)
 {
 $imagens .= '<img'.$valor;
 }
 $info["estrelas"] = $imagens;
 return $info;
 }

 public function busca($palavra)
 {
 $feedURL = 'http://gdata.youtube.com/feeds/base/videos?q='.$palavra.'&client=ytapi-youtube-search&v=2';
 $sxml = simplexml_load_file($feedURL);
 $i=0;
 foreach ($sxml->entry as $entry)
 {
 $details = $entry->content;
 $info[$i]["titulo"] = $entry->title;
 $aux = explode($info[$i]["titulo"],$details);
 $aux2 = explode("<a",$aux[0]);
 $aux3 = explode('href="',$aux2[1]);
 $aux4 = explode('&',$aux3[1]);
 $info[$i]["link"] = $aux4[0];
 $details_notags = strip_tags($details);
 $texto = explode("From",$details_notags);
 $info[$i]["descricao"] = $texto[0];
 $aux = explode("Views:",$texto[1]);
 $aux2 = explode(" ",$aux[1]);
 $info[$i]["views"] = $aux2[0];

 $aux = explode("Time:",$texto[1]);
 $aux2 = explode("More",$aux[1]);
 $info[$i]["tempo"] = $aux2[0];

 $imgs = strip_tags($details,'<img>');
 $aux = explode("<img",$imgs);
 array_shift($aux);
 array_shift($aux);
 $aux2 = explode("gif\">",$aux[4]);
 array_pop($aux);
 $aux3 = $aux2[0].'gif">';
 $aux[] = $aux3;
 $imagens = '';
 foreach($aux as $campo => $valor)
 {
 $imagens .= '<img'.$valor;
 }
 $info[$i]["estrelas"] = $imagens;
 $i++;
 }
 return $info;
 }

 public function player($width,$height)
 {
 $this->url2id();
 print '<object width="'.$width.'" height="'.$height.'"><param name="movie" value="http://www.youtube.com/v/'.$this->id.'&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'.$this->id.'&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="'.$width.'" height="'.$height.'"></embed></object>';
 }
 }
?>

Aqui vou disponibilizar os exemplos de como usar.

</pre>
$obj = new youtube;
 $obj->url = "http://www.youtube.com/watch?v=PzF98ur3kKU";
 $obj->player("480","385");/// Tamanho do video
 print '<br>';
 print $obj->url2id(); /// ID DO VIDEO
 print '<br>';
 print $obj->url2id_("http://www.youtube.com/watch?v=PzF98ur3kKU"); /// ID DE UM VIDEO
 print '<br>';
 print $obj->thumb_url("maior");/// MOSTRA ENDEREÇo da IMAGEM  MAIOR
 print '<br>';
 print $obj->thumb_url(); /// MOSTRA ENDEREÇo da IMAGEM  PEQUENA
 print '<br>';
 print $obj->thumb(); ///mostra IMagem PEQUENA
 print '<br>';
 print $obj->thumb("maior"); /// mostra iomagem MAIOR
 print '<br>';
 $info = $obj->info();
 print $info["titulo"]; /// mostra titulo
 print '<br>';
 print $info["descricao"]; /// mostra DESCRIÇÂO
 print '<br>';
 print $info["views"]; /// mostra VIEWS
 print '<br>';
 print $info["tempo"]; /// mostra TEMPO
 print '<br>';
 print $info["estrelas"]; /// mostra ESTRELAS
 print '<br>';

$arquivos = $obj->busca("Yupimix");

$listagem = array();

foreach($arquivos as $f) {
 if(strpos($f,'.')!==0) {
 array_push($listagem, $f);
 }
}
#Definimos quantos arquivos exibir por página
$paginas = array_chunk($listagem, 5);

$pagina = (int)$_GET["lista"];
$paginas[$pagina];

 //$busca = $obj->busca("Yupimix");

 //foreach (array_slice($consulta, 0, 10) as $key => $val) {
 foreach($paginas[$pagina] as $campo => $valor)
 {
 print 'Titulo:  '.$valor['titulo'].'<br>';
 print 'Link: '.$valor['link'].'<br>';
 print 'Descrição : '.$valor['descricao'].'<br>';
 print 'Views : '.$valor['views'].'<br>';
 print 'Tempo : '.$valor['tempo'].'<br>';
 print 'Estrelas : '.$valor['estrelas'].'<br>';

 $propriedade = new youtube;
 $propriedade->url = $valor['link'];
 print $propriedade->thumb().'<br>';

 print '--------------<br>';
 }

 #Montamos os links da paginação
for($i=1; $i< count($paginas)+1; $i++) {
 echo "[ <a href=\"?lista=$i\">$i</a> ] ";
}

neste codigo de exemplos eu implante uma paginação.
Se você quiser saber mais informações sobre a classe aqui esta o link

Guia prático de MySQLi no PHP

Filed Under (Internet, Novas Tecnologias, PHP, Programação) by Alex P. Torres on 26-06-2010

Hoje vou falar um pouquinho sobre o MySQLi que é uma extensão do PHP feita para aproveitar os recursos mais avançados do MySQL. O legal do MySQLi é que ele pode ser usado de forma orientada a objetos.

Atenção: As funções MySQLi funcionam apenas com PHP 5 (ou superior) e MySQL 4.1.3 (ou superior).

Não se esqueça de antes de testar esses scripts verificar se o MySQLi está habilitado no seu PHP dando uma olhada no phpinfo().

Veja um exemplo de scripts onde faremos todas as operações comuns do MySQL:

Veja o Tutorial aqui:

Corrector de texto PHP – com Textarea

Filed Under (PHP, Programação) by Alex P. Torres on 22-05-2010

Tagged Under : , , , , , , , , , , ,

PHPWebCorrector é uma correção do texto desenvolvido por ProgramacionWeb.net que funciona em qualquer servidor web que tenha PHP, sem a necessidade de instalar qualquer biblioteca executável ou externo.

Esta correcção é escrito em PHP puro e permite a correção de um texto de um arquivo de dados com todas as palavras certas, com um tempo realmente incrível. Você pode ver um exemplo de quão bem ele funciona e baixar o arquivo de correção, que inclui o dicionário de espanhol, portugues e outros idiomas como estes.

Español
Catalan
Inglés
Portugués

Configurando o Corretor.
Para usar a magia, provavelmente terá que incluir no seu arquivo phpwebcorrect.php página PHP, então você pode usar as seguintes funções:


include 'phpwebcorrect/phpwebcorrect.php';

phpwc_init();
phpwc_boton_corregir('text2');
phpwc_boton_idioma('text2');
phpwc_textarea(500,200,'text2','ejemplo');

Veja um exemplo On-line
http://www.programacionweb.net/descargas/corrector-texto-php/ejemplo/

Sisteminha simples de Enquete com PHP e MySql

Filed Under (PHP, Programação) by Alex P. Torres on 02-03-2010

Tagged Under : , , ,

Bom hoje vamos criar um sistema simples de enquete com PHP e m MySql
muito simples primeiramente vou mostrar o SQL  para colocar no Mysql


CREATE TABLE `enquete` (
 `ip` VARCHAR( 16 ) NOT NULL ,
 `votacao` INT( 1 ) NOT NULL ,
 UNIQUE (
 `ip`
 )
);

Se voce quiser que o usuario efetua varias votações você somente
tira

 UNIQUE (
 `ip`
 )
feito isto faremos o calculode  porcentagem.
$porcentaje = round($votos/$total*100,2); 

Otima Classe para integrar um template em seu sistema

Filed Under (PHP, Programação) by Alex P. Torres on 30-11-2009

Tagged Under : , , , , , , ,

Uma das coisas que as pessoas mais me perguntam sobre PHP, é sobre o uso de Templates. Ou porque leram em algum livro ou fórum, ou seja porque eu comentei em aula.

Através do uso de templates, deixamos toda a estrutura visual (HTML ou XML, CSS, etc) separado da lógica de programação (código PHP), o que melhora e muito tanto a construção quanto a manutenção de sistemas web.

Existem vários mecanismo de template para PHP, e há um bom tempo no mercado. Mas qual indicar? Sem dúvida alguma, o Smarty é hoje o mais completo deles. Porém, o mais complexo, e de curva mais demorada. Ele é praticamente uma linguagem a parte do PHP.

Com base nisso, eu resolvi colocar criar um tutorial baseado em um mecanismo de template muito mais simples. Ou seja: este não é um tutorial sobre o Smarty. É sobre Templates, mas baseado uma biblioteca que eu mesmo desenvolvi, e uso em meus projetos (mesmo nos maiores deles), na qual gastei bastante tempo desenvolvendo e melhorando, sempre com o foco principal na facilidade de uso.

Mas quase todos os conceitos vistos neste tutorial se aplicam a maioria das classes de Template existentes em PHP, portanto, se você entender as idéias explicadas aqui, poderá usar seu mecanismo de Templates favorito.

Para criar esta biblioteca (eu uso templates há muitos anos, quando só existia a PHPLib), eu estudei vários mecanismos de templates (PHPLib, Sigma, etc), portanto não estou “reinventando a roda”, apenas “me apoiei no ombro de gigantes” para criar algo muito mais fácil de usar, que atendesse minhas necessidades e da empresa que eu trabalhava na época. De fato, atualmente muita gente usa esta biblioteca.

Eu inclusive traduzi os comentários dos métodos/funções públicos para facilitar. Você verá que será preciso entender apenas duas idéias básicas: variáveis e blocos.

Então, vamos lá.

LINK: site do desenvolvedor

1º UruguaianaTech

Filed Under (Eventos, Linux, PHP, Programação, Sistema Operacional) by Alex P. Torres on 24-11-2009

Tagged Under : , , , , ,

logo_r2_c245545454566
Com a missão de educar para o trabalho em atividades do comércio de bens, serviços e turismo, o SENAC Uruguaiana promove nos dias 26, 27 e 28 de novembro o 1° UruguaianaTech, evento que visa difundir a utilização do Software Livre nos diversos setores de nossa comunidade.

Sempre conectado às inovações do mercado e atento às novas tendências em tecnologia, o núcleo de TI do Senac Uruguaiana, ministrará palestras sobre os temas: Linux, Servidores, Segurança, Desenvolvimento de Aplicações Web e Móvel.

Esta edição contará com a presença de profissionais de destaque no mercado da Tecnologia da Informação, com ampla experiência na utilização de Software Livre em ambientes corporativos, educacionais e domésticos.

O evento será realizado no auditório do Colégio Marista Sant’Ana. As inscrições podem ser realizadas através do site ou na unidade do Senac, mediante a colaboração com um alimento não-perecível. Aos interessados na emissão do certificado, o investimento será de R$10,00.

Vejam abaixo a programação do evento. Destaque para o 1º e 2º dia onde os editores deste blog, Thiago Finardi e Rodrigo Aramburu, ministrarão palestras no evento.
Vamos lá pessoal, participem e ajudem no crescimento da área de TI em nossa cidade.

http://www.uruguaianatech.info

Top 100 de Ferramentas de Segurança Open Source

Filed Under (Internet, Programação) by Alex P. Torres on 23-11-2009

Tagged Under : , , , , , ,

esta listagem foi feita pelo reconhecido Jeromie Jackson, consultor de segurança em informática,

1
Stockade Virtual Appliance with Snort, BASE, Inprotect, CACTI, NTOP & Others
2

Nessus

Open source vulnerability assessment tool
3
Snort Intrusion Detection (IDS) tool
4
Wireshark TCP/IP Sniffer- AKA Ethereal
5

WebScarab

Analyze applications that communicate using the HTTP and HTTPS protocols
6
Wikto Web server assessment tool
7
BackTrack Penetration Testing live Linux distribution
8
Netcat The network Swiss army knife
9
Metasploit Framework Comprehensive hacking framework
10
Sysinternals Collection of windows utilities
11
Paros proxy Web application proxy
12
Enum Enumerate Windows information
13
P0F v2 Passive OS identification tool
14
IPPersonality Masquerade IP Stack
15
SLAN Freeware VPN utility
16
IKE Crack IKE/IPSEC cracking utility
17
ASLEAP LEAP cracking tool
18
Karma Wireless client assessment tool- dangerous
19
WEPCrack WEP cracking tool
20
Wellenreiter Wireless scanning application
21

SiteDigger

Great Google hacking tool
22
Several DDOS Tools Distributed Denial of Service(DDOS) tools
23
Achilles Web Proxy Tool
24
Firefox Web Developer Tool Manual web assessment
25
Scoopy Virtual Machine Identification tool
26
WebGoat Learning tool for web application pentests
27
FlawFinder Source code security analyzer
28
ITS4 Source code security analyzer
29
Slint

Source code security analyzer

30
PwDump3 Dumps Windows 2000 & NT passwords
31
Loki ICMP covert channel tool
32
Zodiac DNS testing tool
33
Hunt TCP hijacking tool
34
SniffIT Curses-Based sniffing tool
35
CactiEZ Network traffic analysis ISO
36
Inprotect Web-based Nessus administration tool
37
OSSIM Security Information Management (SIM)
38
Nemesis Command-Line network packet manipulation tool
39
NetDude TCPDump manipulation tool
40
TTY Watcher Terminal session hijacking
41
Stegdetect Detects stego-hidden data
42
Hydan Embeds data within x86 applications
43
S-Tools Embeds data within a BMP, GIF, & WAV Files
44
Nushu Passive covert channel tool
45
Ptunnel Transmit data across ICMP
46
Covert_TCP Transmit data over IP Header fields
47
THC-PBX Hacker PBX Hacking/Auditing Utility
48
THC-Scan Wardialer
49
Syslog-NG MySQL Syslog Service
50

WinZapper

Edit WinNT 4 & Win2000 log files
51
Rootkit Detective Rootkit identification tool
52
Rootkit Releaver Rootkit identification tool
53
RootKit Hunter Rootkit identification tool
54

Chkrootkit

Rootkit identification tool
55
LKM Linux Kernal Rootkit
56
TCPView Network traffic monitoring tool
57
NMAP Network mapping tool
58
Ollydbg Windows unpacker
59
UPX Windows packing application
60
Burneye Linux ELF encryption tool
61

SilkRpoe 2000

GUI-Based packer/wrapper
62
EliteWrap Backdoor wrapper tool
63
SubSeven

Remote-Control backdoor tool

64
MegaSecurity Site stores thousands of trojan horse backdoors
65
Netbus

Backdoor for Windows

66
Back Orfice 2000 Windows network administration tool
67
Tini Backdoor listener similar to Netcat
68

MBSA

Microsoft Baseline Security Analyzer
69
OpenVPN SSL VPN solution
70
Sguil An Analyst Console for network security/log Monitoring
71
Honeyd Create your own honeypot
72
Brutus Brute-force authentication cracker
73
cheops / cheops-ng Maps local or remote networks and identifies OS of machines
74
ClamAV A GPL anti-virus toolkit for UNIX
75
Fragroute/Fragrouter Intrusion detection evasion toolkit
76
Arpwatch Monitor ethernet/IP address pairings and can detect ARP Spoofing
77
Angry IP Scanner Windows port scanner
78
Firewalk Advanced traceroute
79
RainbowCrack Password Hash Cracker
80
EtherApe EtherApe is a graphical network monitor for Unix
81
WebInspect Web application scanner
82
Tripwire File integrity checker
83
Ntop Network traffic usage monitor
84
Sam Spade Windows network query tool
85
Scapy Interactive packet manipulation tool
86
Superscan A Windows-only port scanner
87
Airsnort 802.11 WEP Encryption Cracking Tool
88
Aircrack WEP/WPA cracking tool
89
NetStumbler Windows 802.11 Sniffer
90
Dsniff A suite of powerful network auditing and penetration-testing tools
91
John the Ripper Multi-platform password hash cracker
92
BASE The Basic Analysis and Security Engine- used to manage IDS data
93
Kismet Wireless sniffing tool
94

THC Hydra

Network authentication cracker
95
Nikto Web scanner
96
Tcpdump TCP/IP analysis tool
97

L0phtcrack

Windows password auditing and recovery application
98

Reverse WWW Shell

Shell access across port 80
99
THC-SecureDelete Ensure deleted files are unrecoverable
100
THC-AMAP Application mapping tool

Resultados de busca do Google no seu site

Filed Under (PHP, Programação) by Alex P. Torres on 23-11-2009

Tagged Under : , , , , , , , , , , ,

Aprenda usar a API do Google para fazer buscas atraves de seu site.
esta classe foi desenvolvida por Thiago Belem

Eu somente utilizei e gostei como funciona muito bom..


<?php

/**
 * API de busca do Google
 *
 * @author   Thiago Belem (<a href="mailto:contato@thiagobelem.net">contato@thiagobelem.net</a>)
 * @link   <a href="http://thiagobelem.net/blog/">http://thiagobelem.net/blog/</a>
 * @version   1.1
 */
class googleSearchAPI {
 protected $url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&start=%s&q=%s';
 var $resultado, $pagina, $keywords;

 function __construct() {
  if (!function_exists('curl_init')) {
   trigger_error('A biblioteca cURL não está instalada!');
   return false;
  }
  if (!function_exists('json_decode')) {
   trigger_error('A biblioteca para manipulação de JSON não está instalada!');
   return false;
  }
 }

 /**
  * Pega o resultado HTTP de uma URL
  */
 protected function httpRequest($url) {
  $cURL = curl_init($url);
  curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($cURL, CURLOPT_FOLLOWLOCATION, true);
  $resultado = curl_exec($cURL);
  $resposta = curl_getinfo($cURL, CURLINFO_HTTP_CODE);
  curl_close($cURL);
  return $resultado;
 }

 /**
  * Executa a busca
  */
 function busca($keywords = null, $pagina = 1, $site = null) {
  $keywords = (is_null($keywords)) ? $this->keywords : $keywords;
  $start = (is_null($pagina)) ? 0 : (($pagina - 1) * 8);

  $bkeywords = (!is_null($site)) ? ($keywords . ' site:' . $site) : $keywords;

  $url = sprintf($this->url, (int)$start, urlencode($bkeywords));
  $resultado = $this->httpRequest($url);
  if (!$resultado) {
   trigger_error('Não foi possível acessar a URL de busca:<br />' . $url);
   return false;
  }
  $resultado = json_decode($resultado, true);

  $this->resultado = $resultado['responseData'];
  $this->keywords = $keywords;
  $this->pagina = $pagina;
 }

 /**
  * Pega os resultados encontrados
  */
 function resultadoSites() {
  return $this->resultado['results'];
 }

 /**
  * Pega o total de sites encontrados
  */
 function resultadoTotal() {
  return $this->resultado['cursor']['estimatedResultCount'];
 }
}

?>

Exemplo de Uso nesta pagina você modifica a seu gosto.


<?php

$keywords = 'Thiago Belem';
$pagina = (isset($_GET['p'])) ? (int)$_GET['p'] : 1;

$gs = new googleSearchAPI();
//$gs->busca($keywords, $pagina); // Busca normal
$gs->busca($keywords, $pagina, 'thiagobelem.net'); // Busca em um site específico

$total = $gs->resultadoTotal();

echo "Total estimado de resultados: " . $total;
echo "<br />";
echo "<h2>Pagina: " . $gs->pagina . "</h2>";

foreach ($gs->resultadoSites() as $item) {
 echo "<h3>" . $item['title'] . "</h3>";
 echo "<p>" . $item['content'] . "</p>";
 echo '<a href="' . $item['unescapedUrl'] . '">' . $item['visibleUrl'] . "</a>";
}

echo "<hr />";

// Paginadores:

if (($pagina - 5) > 1) echo '...&nbsp;';

for ($n = 1; $n <= ceil($total / 8); $n++) {
 if (($n < ($pagina - 5)) OR ($n > ($pagina + 5))) continue;
 echo '<a href="?q='.$keywords.'&p='.$n.'">'.$n.'</a>&nbsp;';
}

if (($pagina + 5) < $total) echo '...';

?>

Infelizmente essa API de busca do Google só retorna 8 resultados por vez (uma limitação do Google mesmo)… mas você tem acesso a todas as páginas que precisar.. É só mudar o valor da variável $pagina (do exemplo).

gRaphaël Biblioteca em Java Script para gerar Graficos.

Filed Under (HTML, CSS etc.., Programação) by Alex P. Torres on 23-11-2009

Tagged Under : , , , , , ,

untitled_r1_c2
uma simples biblioteca em Javascript para gerar graficos de estatiscas
para um rapido uso.
é bom para quem precisa gerar relatorios personalizados em seu sistema online.
link do site

Para que não sabe o que é Lógica de Programação

Filed Under (Programação) by Alex P. Torres on 20-11-2009

para saber informaçoes acesse:
Definicão de Lógica de programação