Foros del Web » Programando para Internet » PHP »

Cambiar de rutas relativas a absolutas

Estas en el tema de Cambiar de rutas relativas a absolutas en el foro de PHP en Foros del Web. Estimados, no se si este es el lugar donde preguntar esto (me refiero al foro Javascript) Si no lo es pido a algun moderador que ...
  #1 (permalink)  
Antiguo 19/08/2010, 07:38
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Cambiar de rutas relativas a absolutas

Estimados, no se si este es el lugar donde preguntar esto (me refiero al foro Javascript)

Si no lo es pido a algun moderador que lo mude al lugar correcto.

La consulta es simple y creo que el titulo lo explica bien. Necesito algo que me cambie las rutas de relativas a absolutas en algunas paginas de mi sitio web.

Esto es asi porque estoy elaborando un sistema mediante el cual se puede enviar la pagina entera via mail.
El tema es que anda de mil maravillas, pero las imagenes no me las muestra ya que yo uso /img/imagen.jpg y lo que necesitaria que me muestre es http://www.misitio.com.ar/img/imagen.jpg

Alguna sugerencia?
Saludos...

Luciano
  #2 (permalink)  
Antiguo 19/08/2010, 07:48
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cambiar de rutas relativas a absolutas

Creo que ago así podría funcionar
Código Javascript:
Ver original
  1. window.onload = function(){
  2.  var largo = document.images.length;
  3.  for (i = 0; i<largo; i++){
  4.   var img = document.images[i];
  5.   if(img.src.indexOf('http://') == -1){
  6.    img.src = 'http://www.misitio.com.ar' + img.src;
  7.   }
  8.  }
  9. }

Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 19/08/2010, 07:51
Avatar de cloudandviator  
Fecha de Ingreso: agosto-2010
Ubicación: Popayán - Colombia
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Cambiar de rutas relativas a absolutas

Hola, mediante javascript puedes cambiar las rutas pero deberia ser antes de enviarase al mail.

jQuery

$.each($("img"),function(){
ruta='http://www.misitio.com.ar/'+$(this).attr();
$(this).attr(ruta);
});

con esto cambias las rutas y ahora si puedes enviar por correo
  #4 (permalink)  
Antiguo 19/08/2010, 08:23
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Cambiar de rutas relativas a absolutas

Bueno, antes que nada gracias a los dos por la velocidad de la respuesta.
Lastima que no este tan familiarizado con JS porque la verdad es que no lo puedo hacer funcionar!

Supuestamente cuando cargo ese codigo (cualquiera de los dos) eso me deberia cambiar directamente las rutas de las imagenes verdad? o sea que si yo inspecciono el elemento el scr deberia ser la ruta completa no?

Sera mucha molestia pedirles me digan donde poner este codigo a ver si lo estoy haciendo mal?

cloudandviator: me interesa lo que pusiste, me podras indicar que jquery deberia usar?

Y finalmente... supongamos que tengo un link hacia mi sitio, esto tambien me sirve para cambiarle las rutas a los links?

Gracias nuevamente!

Luciano
  #5 (permalink)  
Antiguo 19/08/2010, 08:46
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cambiar de rutas relativas a absolutas

Vamos a ir paso por paso. El código en teoría debería cambiar el src de cada imagen de la página donde se ejecute, para estar seguro, al fial del foro añade un alert del tipo img.src, para ver si lo ha cambiado correctamente o no. El código este lo debes colocar en el head. Por último, para cambiar los enlaces este código no sirve, pero sería un código muy similar a este, si estás interesado dímelo.
Saludos :D
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 19/08/2010, 08:56
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Cambiar de rutas relativas a absolutas

Hola _cronos2
Ya puse el codigo entre head y /head pero nada.
Lo que hago es cargar la pagina y mirar el codigo fuente a ver si cambio la rita de relativa a absoluta pero nada.

De paso... tambien me gustaria que me pases el codigo para hacer lo mismo con los links

Gracias y saludos...

Luciano
  #7 (permalink)  
Antiguo 19/08/2010, 09:11
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cambiar de rutas relativas a absolutas

No, el código lo que hace es cambiar el src, pero al mirar el código fuente verás el código tal y como tú lo guardaste, es decir, con las rutas relativas, pero realmente el src de las imágenes es una ruta absoluta. El código para los enlaces es muy similar:
Código Javascript:
Ver original
  1. window.onload = function(){
  2.  var largo = document.images.length;
  3.  var largo2 = document.anchors.length;
  4.  for (i = 0; i<largo; i++){
  5.   var img = document.images[i];
  6.   if(img.src.indexOf('http://') == -1){
  7.    img.src = 'http://www.misitio.com.ar' + img.src;
  8.    alert(img.src);
  9.    //esto es para que veas que se ha cambiado el src de la imagen, cuando subas esto a tu página quita lo del alert
  10.   }
  11.  }
  12.  for (i = 0; i<largo2; i++){
  13.   var enlace = document.anchors[i];
  14.   if(enlace.href.indexOf('http://') == -1){
  15.    enlace.href = 'http://www.misitio.com.ar/' + enlace.href;
  16.    alert(enlace.href);
  17.    //esto es para que veas que se ha cambiado el href del enlace, cuando subas esto a tu página quita lo del alert
  18.   }
  19.  }
  20. }

Este código sirve tanto para las imágenes como para los enlaces, pruébalo y me dices si funciona o no.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #8 (permalink)  
Antiguo 19/08/2010, 09:40
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Cambiar de rutas relativas a absolutas

_cronos2, nuevamente gracias por tu aporte pero no me funciona!

Cuando estoy haciendo las pruebas para ver si anda no me da ningun alert. Alguna sugerencia?
  #9 (permalink)  
Antiguo 19/08/2010, 09:41
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Cambiar de rutas relativas a absolutas

te copio el codigo completo para que lo veas a ver si encontras algo que este mal:

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
window.onload = function(){
var largo = document.images.length;
var largo2 = document.anchors.length;
for (i = 0; i<largo; i++){
var img = document.images[i];
if(img.src.indexOf('http://') == -1){
img.src = 'http://www.losartesanosmdp.com.ar' + img.src;
alert(img.src);
//esto es para que veas que se ha cambiado el src de la imagen, cuando subas esto a tu página quita lo del alert
}
}
for (i = 0; i<largo2; i++){
var enlace = document.anchors[i];
if(enlace.href.indexOf('http://') == -1){
enlace.href = 'http://www.losartesanosmdp.com.ar/' + enlace.href;
alert(enlace.href);
//esto es para que veas que se ha cambiado el href del enlace, cuando subas esto a tu página quita lo del alert
}
}
}
</script>
</head>

<body>
<p>Accesorios</p>
<p>Cortinas</p>
<p>Espejos</p>

<p>Griferías</p>
<p>Mamparas</p>
<p>Muebles para baño</p>
<p>Muebles para cocina</p>
<p>Sanitarios</p>
<p><img src="/MAILINGS/1.jpg" width="632" height="258"></p>
</body>
</html>
  #10 (permalink)  
Antiguo 19/08/2010, 20:39
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Cambiar de rutas relativas a absolutas

Cita:
Esto es asi porque estoy elaborando un sistema mediante el cual se puede enviar la pagina entera via mail.
opino que deberias explicar esta parte. ¿como haces para enviar el documento por correo? dudo que desde javascript porque javascript no tiene tales capacidades, sera desde un lenguaje servidor. por otro lado, cualquier cambio que tu le hagas desde javascript al documento cargado en el navegador solo tendra efecto en el lado cliente. lo que significa que cualquier alteracion no sera reflejado en el servidor. dependiendo como sea el sistema, y asumiendo que sea asi, el sistema envia una copia del contenido de tu servidor. entonces, desde un lenguaje servidor tendras que tratar el aspecto de las rutas relativas/absolutas.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 20/08/2010, 07:37
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Cambiar de rutas relativas a absolutas

Paso a relatar paso a paso lo que estoy intentando hacer:

1 - Desde una pagina de mi sitio doy la posibilidad de enviar el contenido a un 3ro.
2 - Se completa un formulario y con php extraigo el contenido de la pagina que se desea enviar de manera que luego la pueda enviar en el cuerpo del e-mail
3 - El 3ro recibe perfectamente toda la informacion menos las imagenes (claro, porque la ruta esta relativa a mi sitio)

Es por eso que creo que lo mejor seria poder reemplazar las rutas de las imagenes por sus absolutas en el momento en que se carga la pagina.
Pense en javascript porque suelo trabajar con jquery y estoy familiarizado con varias cosas, entre ellas la posibilidad de buscar los elementos por tag y reemplazarlos. Esto seria buscar todos los elementos que empiecen con <img scr> y reemplazarlos por la ruta absoluta.

Yo por mi parte trabajo con PHP.

Alguna sugerencia?
  #12 (permalink)  
Antiguo 20/08/2010, 07:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Cambiar de rutas relativas a absolutas

Hola

En el paso 2 usando PHP es cuando has de hacer el replace, de esa manera se enviará el documento con las rutas absolutas

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #13 (permalink)  
Antiguo 20/08/2010, 07:49
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Cambiar de rutas relativas a absolutas

Bien! deberia pasar al foro de php entonces?
De todas maneras, alguna sugerencia de como hacerlo?
  #14 (permalink)  
Antiguo 20/08/2010, 07:59
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Cambiar de rutas relativas a absolutas

Hola

¿Expresiones regulares? para encontrar y dividir la etiqueta en tres partes <img src=", la ruta y "/>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #15 (permalink)  
Antiguo 20/08/2010, 08:05
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Cambiar de rutas relativas a absolutas

como ya te indique. desde javascript no puedes hacer nada porque los cambios se realizan en el cliente. si fueras hacer el reemplazo desde javascript tendrias que enviar el estado actual del documento desde el cliente a tu servidor y del servidor al correo. pero no es eficiente y mucho menos lo recomendable. lo correcto es que -en tu caso- desde php abras el documento a ser enviado como cadena de texto y con las funciones apropiadas, quizas expresiones regulares, modifiques las rutas antes de enviar el contenido al correo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #16 (permalink)  
Antiguo 20/08/2010, 08:38
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Cambiar de rutas relativas a absolutas

Bueno, creo que lo resolvi.
Dejo la solucion por dos motivos:
1 - Para los que la necesiten
2 - Para ver si alguno tiene alguna sugerencia

<?php
$html_1 = file_get_contents('http://misitio.com.ar/loquesea.php');
$reemplazar_img='<img src="';
$ruta_img='<img src="http://misitio.com.ar';
$cadena_final=ereg_replace($reemplazar_img,$ruta_i mg,$html_1);
?>

Finalmente hay que enviar con un simple formulario la variable $cadena_final y listo!

<?PHP
$message = stripslashes($cadena_final);
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type:text/html; charset=iso-8859-1\r\n";
$headers .= "From: $email\r\n";
$headers .= "Repaly-to: $email\r\n";
$headers .= "Cc: $email\r\n";
mail($recipiente,$asunto,$message,$headers);
?>

Gracias a todos por su tiempo, paciencia y sabiduria!

Luciano
  #17 (permalink)  
Antiguo 20/08/2010, 10:16
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Tema movido desde javascript
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #18 (permalink)  
Antiguo 20/08/2010, 10:30
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Cambiar de rutas relativas a absolutas

un pregunta??

no ubiera sido tan simple como cambiar de
/images/imagen.jpg

a

../images/imagen.jpg

??
obvio que si me encuentro en un directorio dentro del dominio y mis imagenes estan en la raiz tengo que decirle que se vaya a la raiz
con eso al picar sobre las imgenes te aparecera la ruta completa de tu dominio en la ruta en donde se encuentra...

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!

Etiquetas: relativas, rutas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:07.