Foros del Web » Programación para mayores de 30 ;) » RegExp »

regexp y update

Estas en el tema de regexp y update en el foro de RegExp en Foros del Web. Hola, les cuento que tengo un pequeño problema tengo 2mil archivos con sus respectivas rutas ejemplo "G:/holding/lcamasoc/5353/" pero por cosas del destino tengo que cambiar ...
  #1 (permalink)  
Antiguo 07/07/2011, 17:03
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Pregunta regexp y update

Hola, les cuento que tengo un pequeño problema tengo 2mil archivos con sus respectivas rutas ejemplo "G:/holding/lcamasoc/5353/" pero por cosas del destino tengo que cambiar la ruta de estos archivos por lo que ahora seria "filesadmon/holding/lcamasoc/5353/" seria muy tedioso cambiar de uno en uno no? y estaba investigando acerca de regexp no se mucho veo que sirve para hacer busquedas especificas como podria esto aplicarlo a un update? aclaro cambiando solo la G:/ por filesadmon?.
Muchas gracias por leer y por sus comentarios :)

__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #2 (permalink)  
Antiguo 07/07/2011, 17:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: regexp y update

¿Regexp?

No, lo que tu necesitas es una utilidad de linea de comandos, tal vez mv de *nix.

Vamos, solo hay que mover la carpeta con todo su contenido a otro lugar, no es necesario comparar y mover archivo por archivo.

Además, si fuera el caso, con str_replace(), puedes cambiar perfectamente el nombre de la ruta.
Código PHP:
$ruta str_replace('G:/''filesadmon/'$ruta); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/07/2011, 17:09
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: regexp y update

A ver si entiendo, vos tenes 2000 archivos en cuyo código figura
G:/holding/lcamasoc/5353/ y querés cambiar ese texto por
filesadmon/holding/lcamasoc/5353/

o simplemente tenes que poner los archivos en otra carpeta?


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 08/07/2011, 08:35
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: regexp y update

justo lo que dices emprear.... tengo que cambiar la ruta de los archivos pero no quiero hacerlos uno por uno u.u. pateketrueke entonces con ese codigo reemplazo solo la G:/ por el filesadmon cierto? solo tengo que recorrer cada registro?
SAludos :D
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #5 (permalink)  
Antiguo 08/07/2011, 08:50
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: regexp y update

Si con eso que te dice @pateketrueke, haces la substitución, ahora que tendrias que hacer una script que abra los archivos indicados, haga el reemplazo y los vuelva a guardar. Por ejemplo con readdir() vas recorriendo cada directorio, filtras las extensiones necesarias (php. html....) , fopen() fwrite().. etc
Pero para 2000 archivos, no sé. Yo en particular cuando tengo que hacer algo asi, utilizo un buen editor de texto que haga reemplazos en archivos multiples, y lo voy haciendo por tandas, de a 100.

Otra herramienta muy buena para eso (si es que usas Windows) es
http://www.digitalvolcano.co.uk/content/textcrawler


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 08/07/2011, 09:49
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: regexp y update

pero no quiero editar los archivos creo que ahi me confundi solo el campo en la base de datos pues los archivos simplemente los pondre en otra carpeta solo necesito hacer un update en el campo ruta
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #7 (permalink)  
Antiguo 08/07/2011, 10:56
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: regexp y update

harvestmoon:
Tu planteo es muy ambigüo, en ningún momento habias señalado que lo que querías era hacer un UPDATE a una base de datos. Para eso no necesitas ningun regexp, como vos lo llamas

Código PHP:
Ver original
  1. $viejo_valor = "G:/holding/lcamasoc/5353/";
  2. $nuevo_valor = "filesadmon/holding/lcamasoc/5353/";
  3.  
  4. mysql_query("UPDATE Archivos SET Ruta= '$nuevo_valor' WHERE  ruta= '$viejo_valor'");


Saludos

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 08/07/2011, 11:16
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: regexp y update

si :( lo siento creo que no plantee la pregunta como debia ser lo lamento.
y exactamente lo que me pusiste es lo que hice
Cita:
<?php
include_once("settings.inc.php");
//include_once("pestas.php");
$link=mysql_connect(SQL_HOST,SQL_USER,SQL_PWD);
$sqlrutas="SELECT * FROM facturas";
$rsrutas=mysql_db_query(SQL_DB,$sqlrutas) or die (mysql_error());
while($rowrutas=mysql_fetch_array($rsrutas)){
$ruta=$rowrutas["ruta"];

$ruta_nueva = str_replace('G:/', 'filesadmon/', $ruta);
//echo $rowrutas["id_factura"]."$ruta_nueva<br>";
$sqlnuevo="update facturas set ruta='$ruta_nueva' where id_factura=".$rowrutas["id_factura"]."";
echo "$sqlnuevo<br>";
$rsnuevo=mysql_db_query(SQL_DB,$sqlnuevo);

}
?>
por si a alguien le sirve...
muchas gracias por su ayuda y disculpa por la mala redaccion
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D

Etiquetas: php, update
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 01:26.