A um bom tempo venho querendo escrever este mini-tutorial.

Vejo por aí muitos “sites de downloads” diversos, que oferecem uma miríade de filmes, músicas, softwares e outros gadgets (muitos deles sendo resultado de produtos piratas, infelizmente).

 

Até aí, acho que cada um sabe e se responsabiliza pelo conteúdo que disponibiliza publicamente e online. Não sou a favor da pirataria, muito menos aos preços absurdos e abusivos de grandes players de mercado, mas isso é papo pra outra hora.

 

Enfim, o que mais me incomoda e me deixa com muita raiva deste tipo de site (que de cara entra na minha black list) nestes casos, e acredito que a grande maioria idem, são os links “escondidos”, do tipo:

 

http://linkprotegido.info/link/?url=http://yess.me/ir/id/aHR0cDovL2xpbmtwcm90ZWdpZG8uaW5mby8ycy9JRC9lODhkZWI=/ http://www.downcelular.com/link/?
url=lmth.rar.onurB.yB.DivX.piRDVD.naM.norI.adnegeL/83030ef/74052866/ld/moc.eliftoh//:ptth

 

Estes redirecionamentos forçados e contra a sua vontade te levam para lugares nada seguros e com conteúdo pouco apropriado e que em muitos casos podem conter códigos maliciosos.

 

Por conta deste inconveniente sem tamanho, vou ensinar duas formas (php e javascript) de criar o chamado Inversor de Url ou Url Inverter/Reinverter que pode ser facilmente colocado em seu blog (via widget) ou site.

 

O primeiro código usa uma função nativa do php chamada strrev(). A sintaxe desta função é a seguinte:

strrev($string)
Parâmetros: a $string invertida.

Neste caso, usamos o seguinte snippet de código para gerar o que queremos:

<?php
echo strrev("Hello world!"); // mostra "!dlrow olleH"
?>

Exemplo completo em PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inversor de Links</title>
</head>

<body>
<script type="text/javascript">
function validaCampo() {
	var d = document;
	if(d.getElementById('url_ori').value == '') {
		alert('Informe o texto/url que quer inverter!');
		d.getElementById('url_ori').focus;
		return false;
	}
}
</script>
<form id="urlinverter" name="urlinverter" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<fieldset style="width:290px;">
<legend>Origem: </legend>
<textarea name="url_ori" cols="30" rows="4" id="url_ori" /></textarea><br />
<input type="submit" name="bt_inverter" value="Inverter" onclick="return validaCampo()" />
</fieldset>
</form>
<br />
<br />
<fieldset style="width:290px;">
<legend>Resultado</legend>
<form id="url_container" name="url_container" action="#">
<textarea name="url_inv" cols="30" rows="4" id="url_inv" /><?php if(isset($_POST["url_ori"]) and $_POST["url_ori"] <> "") { echo strrev($_POST["url_ori"]); } ?></textarea>
</form>
</fieldset>
<div><small>copie e cole o texto acima e cole na barra de endere&ccedil;os do seu navegador</small></div>
</body>
</html>

Já no caso do JavaScript, temos duas formas de codificação bem simples, baseada na propriedade prototype:

 

Propriedade prototype

Permite adicionar propriedades e métodos ao objeto String.

Sintaxe:

String.prototype.nome = valor


Onde nome é o nome da nova propriedade ou método e valor é o valor da propriedade ou o nome de uma função. É importante observar que, ao usar esta propriedade, todos as strings de seu código passarão a fornecer a nova funcionalidade.

 

Exemplo 1 – Como adicionar um método reverse ao objeto String:

<script type="text/javascript">
    function reverter() {
        var str = this;
        var res = "";
        for(var i = (str.length - 1); i >= 0; i--)
            res += str.substr(i, 1);
            return res;
    }
    String.prototype.reverse = reverter;
    var frase = "Observe esta frase";
    document.write("Original: " + frase + "<br />");
    document.write("Invertida: " + frase.reverse());
</script>


Exemplo 2 – Como adicionar um método reverse ao objeto String:

<script language="javascript">
    String.prototype.reverse = function(){
        splitext = this.split("");
        revertext = splitext.reverse();
        reversed = revertext.join("");
        return reversed;
    }
    x = new String('Observe esta frase');
    document.write(x.reverse());
</script>


A execução destes códigos produzirá o seguinte resultado:

Original: Observe esta frase
Invertida: esarf atse evresbO


Aqui vai o exemplo completo em JavaScript:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inversor de Links</title>
</head>
<body>
<script type="text/javascript">
function reverter() {
	var str = this;
	var res = "";
	for(var i = (str.length - 1); i >= 0; i--)
		res += str.substr(i, 1);
		return res;
}
function inverter(str) {
	var d = document;
	if(d.getElementById('url_ori').value == '') {
		alert('Informe o texto/url que quer inverter!');
		d.getElementById('url_ori').focus;
		return false;
	} else {
		String.prototype.reverse = reverter;
		var str_inverter = str;
		document.getElementById('url_inv').value = str_inverter.reverse();
		return true;
	}
}
</script>
<form id="urlinverter" name="urlinverter" method="post" action="#">
<fieldset style="width:290px;">
<legend>Origem: </legend>
<textarea name="url_ori" cols="30" rows="4" id="url_ori" /></textarea>
<input type="button" name="bt_inverter" value="Inverter" onclick="return inverter(document.getElementById('url_ori').value)" />
</fieldset>
</form>
<fieldset style="width:290px;">
<legend>Resultado</legend>
<form id="url_container" name="url_container" action="#">
<textarea name="url_inv" cols="30" rows="4" id="url_inv" /></textarea>
</form>
<div><small>copie e cole o texto acima na barra de endere&ccedil;os do seu navegador</small></div>
</fieldset>
</body>
</html>

Para ver o script acima em ação, basta olhar nossa Sidebar! ;-)

Espero que tenham gostado. Até a próxima!

Related Posts Plugin for WordPress, Blogger...
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (Avaliações: 1, média: 5,00 de 5)
Loading ... Loading ...