Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: motocros_elche en 12 Junio 2011, 02:15 am



Título: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 12 Junio 2011, 02:15 am
Buenas
Pues creo que el titulo lo dice todo, explico con detalle de todas maneras:
Me gustaría que todos los enlaces que estén en mi web y sean hacia web externas, se les añadiera antes del http:// un enlace que yo les ponga(seria el mismo para todos)

Lo quiero, por que anteriormente entre todos de foro.elhacker.net me ayudaron a conseguir un código php que era http://miweb.com/enlaces.php?page=http://google.es y al hacer click pues aparecía la página que yo diseñara en enlaces.php y a los 10 segundos redirigía a esa web
funciona 100%

Así que solo falta añadir el http://miweb.com/enlaces.php?page= a todos los enlaces que no sean los de mi web

Espero que no sea mucho pedir(Uso Wordpress "instalado en mi VPS")


Gracias de antemano
¡Saludos! =)


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: Shell Root en 12 Junio 2011, 02:37 am
JQuery! :D

Supongamos que tenemos los siguientes links...
Código
  1. <div id="data">
  2.   <a href="link1.html">Link 1</a><br />
  3.   <a href="link2.html">Link 2</a><br />
  4.   <a href="link3.html">Link 3</a>
  5. </div>

Y queremos agregarle algo como esto( http://google.com/?PoC= (http://google.com/?PoC=) ), a la dirección del link.

Código
  1. function agregarHREF(){
  2.   $("#data a").click(function(){
  3.      this.href = "http://google.com/?PoC="+this.href;
  4.   });
  5. }
  6. $(document).ready(agregarHREF);

---

Código completo sería,
Código
  1.   <head>
  2.      <script src="JQuery.js" language="javascript" type="text/javascript"></script>
  3.      <script language="javascript">
  4.         function Cargo(){
  5.            $("#data a").click(function(){
  6.               this.href = "http://google.com/?PoC="+this.href;
  7.            });
  8.         }
  9.         $(document).ready(Cargo);
  10.      </script>
  11.   </head>
  12.   <body>
  13.  
  14.   <div id="data">
  15.      <a href="link1.html">Link 1</a><br />
  16.      <a href="link2.html">Link 2</a><br />
  17.      <a href="link3.html">Link 3</a>
  18.   </div>  
  19.  
  20.   </body>
  21. </html>


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 12 Junio 2011, 04:24 am
JQuery! :D

Supongamos que tenemos los siguientes links...
Código
  1. <div id="data">
  2.   <a href="link1.html">Link 1</a><br />
  3.   <a href="link2.html">Link 2</a><br />
  4.   <a href="link3.html">Link 3</a>
  5. </div>

Y queremos agregarle algo como esto( http://google.com/?PoC= (http://google.com/?PoC=) ), a la dirección del link.

Código
  1. function agregarHREF(){
  2.   $("#data a").click(function(){
  3.      this.href = "http://google.com/?PoC="+this.href;
  4.   });
  5. }
  6. $(document).ready(agregarHREF);

---

Código completo sería,
Código
  1.   <head>
  2.      <script src="JQuery.js" language="javascript" type="text/javascript"></script>
  3.      <script language="javascript">
  4.         function Cargo(){
  5.            $("#data a").click(function(){
  6.               this.href = "http://google.com/?PoC="+this.href;
  7.            });
  8.         }
  9.         $(document).ready(Cargo);
  10.      </script>
  11.   </head>
  12.   <body>
  13.  
  14.   <div id="data">
  15.      <a href="link1.html">Link 1</a><br />
  16.      <a href="link2.html">Link 2</a><br />
  17.      <a href="link3.html">Link 3</a>
  18.   </div>  
  19.  
  20.   </body>
  21. </html>

Muchisimas gracias por el código, pero digamos que quiero algo que lo haga una vez y se quede para siempre...
los enlaces digamos que añado unos 10 por día en distintas horas...


se puede hacer algo tipo lo que tu dices pero en vez de añadir a link1.html sea http://paginaweb.com/file/* ? (solamente cambia el final por eso pongo "*" por ejemplo una vez es : http://paginaweb.com/file/9FN308 otras http://paginaweb.com/file/248HG)
solamente seria para un tipo de pagina que empieza por lo mismo solamente cambia el final, osea es un servidor de archivos tipo megaupload

¿Si se puede verdad?

¡Gracias de antemano!
¡Saludos! =)


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: Shell Root en 12 Junio 2011, 21:01 pm
Pues no entendí un coño! XD

Poned más ejemplos...


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 12 Junio 2011, 22:41 pm
Pues no entendí un coño! XD

Poned más ejemplos...
supongamos que mi web es como gratisjuegos o gratispeliculas, todos los enlaces tienen añadido delante algo así http://lik.co?
y en mi web digamos que tengo enlaces hacia webs de archivos (de descargas ya sabéis)
y quiero que a todos esos enlaces y a los que vaya añadiendo, delante del enlace se le añada http://miweb.com/enlaces.php?page=

de esa manera conseguiría lo que quiero para usar el redireccionador de los 10 segundos...

Espero que haya quedado claro, para quien no, que entre en taringa que también lo han añadido actualmente =)

¡Un saludo!


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: lnvisible en 12 Junio 2011, 23:06 pm
Puedes hacer un preg_replace, cuando guardas los enlaces o cuando los recuperas.


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 12 Junio 2011, 23:48 pm
Puedes hacer un preg_replace, cuando guardas los enlaces o cuando los recuperas.
¿? :S, simplemente quiero, http://añadiresto/aenlaceshaciahttp://web.com/file*

añadir un simple código o no tan simple que lo haga para los actuales y los proximos automaticamente, en taringa lo usan, y muchas otras, no me gustaria estar añadiendolo manualmente a todo.... son muchos =(

Gracias de antemano, saludos


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: Shell Root en 13 Junio 2011, 03:17 am
y el código que te puse no hace eso?


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 13 Junio 2011, 03:21 am
y el código que te puse no hace eso?
Pues según veo, tengo que añadir los enlaces a los que quiero que se le añada manualmente uno por uno ¿no?
si a eso de link1.html link2.hml link3.html se le pudiera hacer algo tipo link*.html perfecto pero seria sin el .html al final

Gracias de nuevo =)

¡Saludos!


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: Shell Root en 13 Junio 2011, 06:47 am
jajajajajjaa, intentad hacerlo como tu quieres, se nota que lo probaste...  :silbar:

Si notas lo siguiente, estoy haciendo una condición de donde pueden estar los links, sin afectar todos.
Código
  1. $("#data a").click(function(){

Es decir, en el div con id data, buscar los a href. En tu caso debería ser,
Código
  1. $("#a").click(function(){


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: bomba1990 en 13 Junio 2011, 07:17 am
Puedes hacer un preg_replace, cuando guardas los enlaces o cuando los recuperas.

jajajajajjaa, intentad hacerlo como tu quieres, se nota que lo probaste...  :silbar:

Si notas lo siguiente, estoy haciendo una condición de donde pueden estar los links, sin afectar todos.
Código
  1. $("#data a").click(function(){

Es decir, en el div con id data, buscar los a href. En tu caso debería ser,
Código
  1. $("#a").click(function(){

puedes usar lo que los dos te dijeron, haces un
$('a').click(function(event){
   if(isUrl(this.href)){
      windows.location='http://miweb.com/enlaces.php?page='+this.href;
      event.preventDefault;
   }
});


function isUrl(s) {
   var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
   return regexp.test(s);
}

asi si el click donde se hace click pues redirigira a la pagina que tu quieres.



Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 13 Junio 2011, 14:12 pm
jajajajajjaa, intentad hacerlo como tu quieres, se nota que lo probaste...  :silbar:

Si notas lo siguiente, estoy haciendo una condición de donde pueden estar los links, sin afectar todos.
Código
  1. $("#data a").click(function(){

Es decir, en el div con id data, buscar los a href. En tu caso debería ser,
Código
  1. $("#a").click(function(){
Pues me parece que no añade nada... probe también con lo de link1.html pero modificando data a por a
y me aparecen los enlaces igual... no se les añade nada =S
aquí un ejemplo por si hay algo que falta:
Código:
<html>
<head>
 <script src="JQuery.js" language="javascript" type="text/javascript"></script>
      <script language="javascript">
function agregarHREF(){
   $("#a").click(function(){
      this.href = "http://google.com/?PoC="+this.href;
   });
}
$(document).ready(agregarHREF);
      </script>
</head>
   <body>
   <p><a href="http://google.es/ig">Descarga1</a></p>
   <p><a href="http://google.es">Descarga2</a></p>
   </body>
</html>


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: bomba1990 en 13 Junio 2011, 16:23 pm
es que par que se pueda modificar el enlace deberias hacer asi, $('a').each(function(){}); y entonces eso hara un recorrido por cada enlace de tu pagina y lo modificara y lo pondra como quieres, porque $('a').click es solo un evento, no se ejecutara al cargar al docuemnto sino cuando hagan click en el enlace.


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 13 Junio 2011, 16:38 pm
es que par que se pueda modificar el enlace deberias hacer asi, $('a').each(function(){}); y entonces eso hara un recorrido por cada enlace de tu pagina y lo modificara y lo pondra como quieres, porque $('a').click es solo un evento, no se ejecutara al cargar al docuemnto sino cuando hagan click en el enlace.
Nada, sigue =

¿Algún profesor en la sala que me corrija?
Código:
<html>
<head>
 <script src="JQuery.js" language="javascript" type="text/javascript"></script>
      <script language="javascript">
function agregarHREF(){
$('a').each(function(){
      this.href = "http://google.com/?PoC="+this.href;
   });
}
$(document).ready(agregarHREF);
      </script>
</head>
   <body>
   <p><a href="http://google.es/ig">Descarga1</a></p>
   <p><a href="http://google.es">Descarga2</a></p>
   </body>
</html>


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: bomba1990 en 13 Junio 2011, 17:32 pm
Este funciona a la perfeccion

Código
  1. <html>
  2. <head>
  3. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" language="javascript" type="text/javascript"></script>
  4.      <script language="javascript">
  5. $(document).ready(function(){
  6. $('a').each(function(){
  7.      $(this).attr('href',"http://google.com/?PoC="+$(this).attr('href'));
  8.   });
  9. });
  10.      </script>
  11. </head>
  12.   <body>
  13.   <p><a href="http://google.es/ig">Descarga1</a></p>
  14.   <p><a href="http://google.es">Descarga2</a></p>
  15.   </body>
  16. </html>


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 13 Junio 2011, 21:11 pm
Este funciona a la perfeccion

Código
  1. <html>
  2. <head>
  3. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" language="javascript" type="text/javascript"></script>
  4.      <script language="javascript">
  5. $(document).ready(function(){
  6. $('a').each(function(){
  7.      $(this).attr('href',"http://google.com/?PoC="+$(this).attr('href'));
  8.   });
  9. });
  10.      </script>
  11. </head>
  12.   <body>
  13.   <p><a href="http://google.es/ig">Descarga1</a></p>
  14.   <p><a href="http://google.es">Descarga2</a></p>
  15.   </body>
  16. </html>
ok, ha funcionado, el problema ahora es, que solamente lo quiero para links hacia webs externas
todos los links empiezan por http://nombredeweb.com/file/

Muchas gracias de antemanoo =D

nota: disculpad por pediros tanto código, quizás se que me paso, pero en google no encontré mucho y tan solo necesitaba esto, =)

¡Saludos!


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 14 Junio 2011, 14:56 pm
Es posible hacer que solamente sea para los enlaces que empiecen por cierta dirección URL?


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: bomba1990 en 14 Junio 2011, 15:07 pm
confiro chamo, no es por ser malo, pero piensa tambien tu un poquito estas pasado ya de comodo, unos mensajes atras puse una funcion que averiguaba si es una url completa, si modificas la expresion regular pues podras comprobar lo que quiereas si es de un sitio o otro, si es de tu sitio lo que sea, lo que necesitas es modificar la expresion url.

function isUrl(s) {
   var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
   return regexp.test(s);
}


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 14 Junio 2011, 17:22 pm
confiro chamo, no es por ser malo, pero piensa tambien tu un poquito estas pasado ya de comodo, unos mensajes atras puse una funcion que averiguaba si es una url completa, si modificas la expresion regular pues podras comprobar lo que quiereas si es de un sitio o otro, si es de tu sitio lo que sea, lo que necesitas es modificar la expresion url.

function isUrl(s) {
   var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
   return regexp.test(s);
}
Y ¿donde introduzco ese código y que le modifico?
Disculpa mi ignorancia... -.-''


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: bomba1990 en 15 Junio 2011, 07:14 am
<html>
<head>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" language="javascript" type="text/javascript"></script>
      <script language="javascript">
function isUrl(s) {
   var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
   return regexp.test(s);
}

$(document).ready(function(){
$('a').each(function(){
if(isUrl($(this).attr('href'))){
      $(this).attr('href',"http://google.com/?PoC="+$(this).attr('href'));
}
   });
});
      </script>
</head>
   <body>
   <p><a href="http://google.es/ig">Descarga1</a></p>
   <p><a href="http://google.es">Descarga2</a></p>
   </body>
</html>

no lo e probado


Título: Re: Como modificar todos los enlaces hacia webs externas en mi web
Publicado por: motocros_elche en 15 Junio 2011, 14:14 pm
<html>
<head>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" language="javascript" type="text/javascript"></script>
      <script language="javascript">
function isUrl(s) {
   var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
   return regexp.test(s);
}

$(document).ready(function(){
$('a').each(function(){
if(isUrl($(this).attr('href'))){
      $(this).attr('href',"http://google.com/?PoC="+$(this).attr('href'));
}
   });
});
      </script>
</head>
   <body>
   <p><a href="http://google.es/ig">Descarga1</a></p>
   <p><a href="http://google.es">Descarga2</a></p>
   </body>
</html>

no lo e probado
Hace la misma función, a los enlaces internos(de mi web) les sigue añadiendo delante el http://google.com/?PoC=
Gracias de nuevo =)