Ja chegou o mais novo Portal De Links da Internet

Filed Under (Eventos, Internet, Marketing Viral, Negócios, SEO, Web Marketing) by Alex P. Torres on 18-04-2010

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

Neste Mês esta nascendo o portal de Links da Amixel.
direcionado para todo tipo de links da Internet de Interesse geral, o portal de links esta baseando na metodologia de SEO para ajudar a ser achado os melhores links da internet , como tutoriais, apostilas, downloads, musicas etc..
tudo que for de interesse sera postado no portal.

Se você tiver um site ou portal e quiser colocar seus links no portal não duvide entre em contato pelo e-mail : suporte@amixel.com.br
Para você acessar este é o endereço: links.amixel.com

Site com Ferramentas para SEO

Filed Under (SEO, Web Marketing) by Alex P. Torres on 23-11-2009

Tagged Under : , , , , , , ,

Link Vendor é um site de ferramentas SEO que tem tudo.
fazendo mais simples e rapido para seu desenvolvimento.
vamos mostrar algumas das ferramentas.

  • Analize do site (pagerank, alexa, marcadores sociais, teste de velocidade…)
  • Ferramentas para keywords (densidade, posição)
  • Servidor e dominios (idade do dominio, popularidad…)
  • Ferramentas para links (backlinks, links…)
  • Miscelánea (gerador de sitemaps, de metatags…)

Link Vendor: http://www.linkvendor.com

Gerador de miniaturas que gravam em seu servidor ( Thumbnails )

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

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

icone_jpeg

gerador de miniaturas no codigo esta o autor e on tutorial bem simples.


<?php

/***
script que gera efetua download de imagens e gera miniaturas

Se miniatura nao existir, gera a miniatura
Apos ou se a miniatura ja existir, redireciona o usuario para a imagem em cache

autor: Roberto Berto darkelder@php.net
licença: GPL v2

Caracteristicas:
- gera miniaturas JPG ja do width e height desejado
- usa cache: o algoritmo de redimensionamento - que e' pesado - e' utilizado
apenas uma vez para cada imagem, sendo o resultado salvo em uma pasta

Exemplo:
- sua imagem em tamanho grande esta em http://www.seusite.com.br/fotos/foto_joao.jpg
o tamanho da mesma e' 640x480 pixels
- voce utiliza o seguinte codigo hoje:
<img src="/fotos/foto_joao.jpg" width="80" height="60" >

- agora utilize apenas da seguinte forma:
<img src="/miniatura.php?foto=/fotos/foto_joao.jpg&width=80" width="80" height="60" >

onde:
foto= url da foto
width= tamanho em pixels da largura a ser gerada
height= tamanho em pixels da altura a ser gerada

Configuracao:
1) altere a constante de PASTA e URL da PASTA abaixo para a pasta onde as miniaturas serao salvas

2) voce deve criar a pasta da constante pelo seu FTP sem nenhum arquivo dentro

3) pergunte ao seu provedor se a pasta tem permissao para gravar arquivos, dependendo da configuracao
do provedor e' necessario adicionar essa permissao na pasta. Geralmente isso pode ser feito por voce
mesmo no gerenciador de arquivos do seu painel de controle ou pelo seu programa de FTP com o chmod 0777
Na TeHospedo (http://tehospedo.com.br/), que e' o provedor onde trabalho, esse procedimento nao e' necessario nem no Windows
nem no Linux

**/

// essa variavel e' o seu dominio
define("URL_SITE", 'http://seusite.com.br'); # ----> nao ponha / no final

/******* configuracao para linux **********/
// em linux na TeHospedo apenas altere meuUserdeFTP:
define("PASTA_CACHE", '/home/meuuserdeFTP/public_html/miniaturas/');

/******* configuracao para windows ********/
// em windows na TeHospedo descomente a linha abaixo e mude apenas o meuDominio.com.br:
// mesmo em windows, nao use \ para separar diretorios, use / que e' mais facil
// se descomentar a linha abaixo comente o define anterior
//
// define("PASTA_CACHE", 'd:/domains/meuDominio.com.br/wwwroot/miniaturas/');

/******* configuracao tanto para windows quanto para linux ******/
// a URL abaixo deve corresponder ao endereco web da PASTA_CACHE
define('URL_CACHE', 'http://seusite.com.br/miniaturas'); # ---> nao ponha / no final

// se for uma grande quantidade de arquivos, e' interessante deixar true
// assim, ira separar as miniaturas em subpastas
define('USAR_MULTI_DIRETORIOS', true);

////////////////////// NAO EDITE ABAIXO /////////////////////////
////////////////////// NAO EDITE ABAIXO /////////////////////////
////////////////////// NAO EDITE ABAIXO /////////////////////////
////////////////////// NAO EDITE ABAIXO /////////////////////////
////////////////////// NAO EDITE ABAIXO /////////////////////////

/******** tratamento de variaveis *********/
$url = URL_SITE . '/' . $_REQUEST['foto'];

$width = (int)$_REQUEST['width'];

$width = 143;

// nome dos arquivos que sera usado dentro da pasta de cache
$arquivo = sprintf("%s-%d.jpg",
  md5($url),
  $width
);

if (USAR_MULTI_DIRETORIOS == true) {
	// nome do arquivo com multiplos diretorios
	$arquivo_full = sprintf("%s/%s/%s",
	   substr($arquivo, 0, 2),
	   substr($arquivo, 2, 2),
	   $arquivo
	);
} else {
 	// nome do arquivo sem multiplos diretorios
	$arquivo_full = $arquivo;
}

// path e url do arquivo completa
$arquivo_path = sprintf("%s/%s", PASTA_CACHE, $arquivo_full);
$arquivo_path = str_replace("//", "/", $arquivo_path); // substitui // por /
$arquivo_url  = sprintf("%s/%s", URL_CACHE, $arquivo_full);
$arquivo_path_tmp = $arquivo_path . '.tmp';

/*

printf("full: %s\n", $arquivo_full);
printf("path: %s\n", $arquivo_path);
printf("url: %s\n", $arquivo_url);
*/

if (file_exists($arquivo_path)) { // arquivo existe, vamos apenas redirecionar para ele
	header(sprintf("Location: %s", $arquivo_url));
	exit;
}

// miniatura nao existe, vamos gerar!

// gerar subdiretorio se for usado este metodo
if (USAR_MULTI_DIRETORIOS == true) {
	$dir_level_1 = sprintf("%s/%s",
		PASTA_CACHE,
	        substr($arquivo, 0, 2)
	);

	$dir_level_2 = sprintf("%s/%s/%s",
		PASTA_CACHE,
	        substr($arquivo, 0, 2),
		substr($arquivo, 2, 2)
	);

	// subdiretorio nao existe, cria
	if (!file_exists($dir_level_1)) {
		mkdir($dir_level_1);
	}

	if (!file_exists($dir_level_2)) {
		mkdir($dir_level_2);
	}
}

// efetuar download da miniatura num arquivo tmp
$fp = fopen($arquivo_path_tmp, 'w');

// abre o arquivo
$dados = file_get_contents($url);
if ($dados === false) {
	die("nao posso abrir o arquivo\n\n");
}

fwrite($fp, $dados);

// gerar o thumb

$i = new imagethumbnail();
$i->open($arquivo_path_tmp); // coloque aqui o nome do arquivo original
$i->setX($width);
$i->imagejpeg($arquivo_path, 70);

unlink($arquivo_path_tmp);

if (file_exists($arquivo_path)) { // arquivo existe, vamos apenas redirecionar para ele
	header(sprintf("Location: %s", $arquivo_url));
	exit;
}

die("Algum erro ocorreu");

    class imagethumbnail {

        var $filename;
        var $x;
        var $y;
        var $image;
        var $thumbnail;

        function open($filename) {

            $this->filename = $filename;
            $imageinfo = array();
            $imageinfo = getimagesize($this->filename,$imageinfo);

            $this->old_x = $imageinfo[0];
            $this->old_y = $imageinfo[1];

            switch ($imageinfo[2]) {
                case "1": $this->image = imagecreatefromgif($this->filename); break;
                case "2": $this->image = imagecreatefromjpeg($this->filename); break;
                case "3": $this->image = imagecreatefrompng($this->filename); break;
            }

        }

        function setX($x="") {
            if (isset($x)) { $this->x = $x; }
            return $this->x;
        }

        function setY($y="") {
            if (isset($y)) { $this->y = $y; }
            return $this->y;
        }

        function generate() {

            if ($this->x > 0 and $this->y > 0) {
                $new_x = $this->x;
                $new_y = $this->y;
            } elseif ($this->x > 0 and $this->x != "") {
                $new_x = $this->x;
                $new_y = ($this->x/$this->old_x)*$this->old_y;
            } else {
                $new_x = ($this->y/$this->old_y)*$this->old_x;
                $new_y = $this->y;
            }

            $this->thumbnail = imagecreatetruecolor($new_x,$new_y);
            $white = imagecolorallocate($this->thumbnail,255,255,255);
            imagefill($this->thumbnail,0,0,$white);

            imagecopyresampled ( $this->thumbnail, $this->image, 0, 0, 0, 0, $new_x, $new_y, $this->old_x, $this->old_y);

        }

        function imagejpeg($filename="",$quality=100) {
            if (!isset($this->thumbnail)) { $this->generate(); }
            imagejpeg($this->thumbnail,$filename,$quality);
        }

    }

?>

Duvidas comente

<?php

/***
script que gera efetua download de imagens e gera miniaturas

Se miniatura nao existir, gera a miniatura
Apos ou se a miniatura ja existir, redireciona o usuario para a imagem em cache

autor: Roberto Berto darkelder@php.net
licença: GPL v2

Caracteristicas:
- gera miniaturas JPG ja do width e height desejado
- usa cache: o algoritmo de redimensionamento - que e' pesado - e' utilizado
apenas uma vez para cada imagem, sendo o resultado salvo em uma pasta

Exemplo:
- sua imagem em tamanho grande esta em http://www.seusite.com.br/fotos/foto_joao.jpg
o tamanho da mesma e' 640x480 pixels
- voce utiliza o seguinte codigo hoje:
<img src="/fotos/foto_joao.jpg" width="80" height="60" >

- agora utilize apenas da seguinte forma:
<img src="/miniatura.php?foto=/fotos/foto_joao.jpg&width=80" width="80" height="60" >

onde:
foto= url da foto
width= tamanho em pixels da largura a ser gerada
height= tamanho em pixels da altura a ser gerada

Configuracao:
1) altere a constante de PASTA e URL da PASTA abaixo para a pasta onde as miniaturas serao salvas

2) voce deve criar a pasta da constante pelo seu FTP sem nenhum arquivo dentro

3) pergunte ao seu provedor se a pasta tem permissao para gravar arquivos, dependendo da configuracao
do provedor e' necessario adicionar essa permissao na pasta. Geralmente isso pode ser feito por voce
mesmo no gerenciador de arquivos do seu painel de controle ou pelo seu programa de FTP com o chmod 0777
Na TeHospedo (http://tehospedo.com.br/), que e' o provedor onde trabalho, esse procedimento nao e' necessario nem no Windows
nem no Linux

**/

// essa variavel e' o seu dominio
define("URL_SITE", 'http://seusite.com.br'); # ----> nao ponha / no final

/******* configuracao para linux **********/
// em linux na TeHospedo apenas altere meuUserdeFTP:
define("PASTA_CACHE", '/home/meuuserdeFTP/public_html/miniaturas/'); 

/******* configuracao para windows ********/
// em windows na TeHospedo descomente a linha abaixo e mude apenas o meuDominio.com.br:
// mesmo em windows, nao use \ para separar diretorios, use / que e' mais facil
// se descomentar a linha abaixo comente o define anterior
//
// define("PASTA_CACHE", 'd:/domains/meuDominio.com.br/wwwroot/miniaturas/');  

/******* configuracao tanto para windows quanto para linux ******/
// a URL abaixo deve corresponder ao endereco web da PASTA_CACHE
define('URL_CACHE', 'http://seusite.com.br/miniaturas'); # ---> nao ponha / no final

// se for uma grande quantidade de arquivos, e' interessante deixar true
// assim, ira separar as miniaturas em subpastas
define('USAR_MULTI_DIRETORIOS', true);

////////////////////// NAO EDITE ABAIXO /////////////////////////
////////////////////// NAO EDITE ABAIXO /////////////////////////
////////////////////// NAO EDITE ABAIXO /////////////////////////
////////////////////// NAO EDITE ABAIXO /////////////////////////
////////////////////// NAO EDITE ABAIXO /////////////////////////

/******** tratamento de variaveis *********/
$url = URL_SITE . '/' . $_REQUEST['foto'];

$width = (int)$_REQUEST['width'];

$width = 143;

// nome dos arquivos que sera usado dentro da pasta de cache
$arquivo = sprintf("%s-%d.jpg",
  md5($url),
  $width
);

if (USAR_MULTI_DIRETORIOS == true) {
	// nome do arquivo com multiplos diretorios
	$arquivo_full = sprintf("%s/%s/%s",
	   substr($arquivo, 0, 2),
	   substr($arquivo, 2, 2),
	   $arquivo
	);
} else {
 	// nome do arquivo sem multiplos diretorios
	$arquivo_full = $arquivo;
}

// path e url do arquivo completa
$arquivo_path = sprintf("%s/%s", PASTA_CACHE, $arquivo_full);
$arquivo_path = str_replace("//", "/", $arquivo_path); // substitui // por /
$arquivo_url  = sprintf("%s/%s", URL_CACHE, $arquivo_full);
$arquivo_path_tmp = $arquivo_path . '.tmp';

/*

printf("full: %s\n", $arquivo_full);
printf("path: %s\n", $arquivo_path);
printf("url: %s\n", $arquivo_url);
*/

if (file_exists($arquivo_path)) { // arquivo existe, vamos apenas redirecionar para ele
	header(sprintf("Location: %s", $arquivo_url));
	exit;
}

// miniatura nao existe, vamos gerar!

// gerar subdiretorio se for usado este metodo
if (USAR_MULTI_DIRETORIOS == true) {
	$dir_level_1 = sprintf("%s/%s",
		PASTA_CACHE,
	        substr($arquivo, 0, 2)
	);

	$dir_level_2 = sprintf("%s/%s/%s",
		PASTA_CACHE,
	        substr($arquivo, 0, 2),
		substr($arquivo, 2, 2)
	);

	// subdiretorio nao existe, cria
	if (!file_exists($dir_level_1)) {
		mkdir($dir_level_1);
	}

	if (!file_exists($dir_level_2)) {
		mkdir($dir_level_2);
	}
}

// efetuar download da miniatura num arquivo tmp
$fp = fopen($arquivo_path_tmp, 'w');

// abre o arquivo
$dados = file_get_contents($url);
if ($dados === false) {
	die("nao posso abrir o arquivo\n\n");
}

fwrite($fp, $dados);

// gerar o thumb

$i = new imagethumbnail();
$i->open($arquivo_path_tmp); // coloque aqui o nome do arquivo original
$i->setX($width);
$i->imagejpeg($arquivo_path, 70);

unlink($arquivo_path_tmp);

if (file_exists($arquivo_path)) { // arquivo existe, vamos apenas redirecionar para ele
	header(sprintf("Location: %s", $arquivo_url));
	exit;
} 

die("Algum erro ocorreu");

    class imagethumbnail {

        var $filename;
        var $x;
        var $y;
        var $image;
        var $thumbnail;

        function open($filename) {

            $this->filename = $filename;
            $imageinfo = array();
            $imageinfo = getimagesize($this->filename,$imageinfo);

            $this->old_x = $imageinfo[0];
            $this->old_y = $imageinfo[1];

            switch ($imageinfo[2]) {
                case "1": $this->image = imagecreatefromgif($this->filename); break;
                case "2": $this->image = imagecreatefromjpeg($this->filename); break;
                case "3": $this->image = imagecreatefrompng($this->filename); break;
            }

        }

        function setX($x="") {
            if (isset($x)) { $this->x = $x; }
            return $this->x;
        }

        function setY($y="") {
            if (isset($y)) { $this->y = $y; }
            return $this->y;
        }

        function generate() {

            if ($this->x > 0 and $this->y > 0) {
                $new_x = $this->x;
                $new_y = $this->y;
            } elseif ($this->x > 0 and $this->x != "") {
                $new_x = $this->x;
                $new_y = ($this->x/$this->old_x)*$this->old_y;
            } else {
                $new_x = ($this->y/$this->old_y)*$this->old_x;
                $new_y = $this->y;
            }

            $this->thumbnail = imagecreatetruecolor($new_x,$new_y);
            $white = imagecolorallocate($this->thumbnail,255,255,255);
            imagefill($this->thumbnail,0,0,$white);

            imagecopyresampled ( $this->thumbnail, $this->image, 0, 0, 0, 0, $new_x, $new_y, $this->old_x, $this->old_y);

        }

        function imagejpeg($filename="",$quality=100) {
            if (!isset($this->thumbnail)) { $this->generate(); }
            imagejpeg($this->thumbnail,$filename,$quality);
        }

    }

?>