Foros del Web » Programando para Internet » PHP »

Problema Terminal

Estas en el tema de Problema Terminal en el foro de PHP en Foros del Web. Hola Amigos, tengo un pequeño problema y me gustaría saber vuestra opinión al respecto... Según tengo entendido php puede escribir en la terminal del servidor... ...
  #1 (permalink)  
Antiguo 19/12/2003, 19:12
Avatar de Barraca  
Fecha de Ingreso: octubre-2001
Ubicación: Dénia
Mensajes: 259
Antigüedad: 23 años
Puntos: 2
Problema Terminal

Hola Amigos, tengo un pequeño problema y me gustaría saber vuestra opinión al respecto...

Según tengo entendido php puede escribir en la terminal del servidor... (corrijanme si me equivoco).

He conseguido hacer funciones básicas como copiar archivos de un lado a otro, crear directorios, renombrarlos etc...

Ahora bien, lo que necesito es crear un archivo que me abra el archivo hola.php y substituya por ejemplo todos los holas que figuran por el código fuente por "adios".
Os preguntareís por qué no lo hago manualmente, pues resulta que tal vez sean miles de archivos y tenga que hacerlo regularmente...

Si por terminal se pudises escribir, la mayoria de servidores web Linux (corrijanme nuevamente si me equivoco) traen de serie el editor VIM o EMACS, con lo cual, sería hacer que el php escribiese en termianal lo siguiente:
<?php
print "vim hola.php";
print ":%/hola/adios";
print ":w";
print ":qa!";
?>
vim hola.php /* abre el archivo hola.php (un archivo que está en el directorio y no tiene nada que ver con el archivo que se está ejecuntando)

:%/hola/adios /*busca y reemplaza en todo el documento hola por adios

:w /*guarda archivo

:qa! /*Cierra el archivo

__________________
Ahora bien, como puedo hacer el script ejecute esto?, que sintaxis utilizaría?, es posible?

Muchas gracias amigos, espero que esto sea posible.
Un saludo
  #2 (permalink)  
Antiguo 19/12/2003, 19:16
Avatar de Barraca  
Fecha de Ingreso: octubre-2001
Ubicación: Dénia
Mensajes: 259
Antigüedad: 23 años
Puntos: 2
Bueno decir que tiene que ser en php o cualquier otra cosa que ejecute el servidor por defecto y sea DINÁMICO, nada de buscar y reemplazar de carpetas por el dreamweaver y todo eso, pues lo que quiero es hacer un while y que cada vez me reemplace cada archivo con una palabra diferente a la anterior, por ejemplo "adios1", "adios2"...

Gracias!
  #3 (permalink)  
Antiguo 23/12/2003, 09:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Bueno .. para ejecutar comandos en el "terminal" (consola) del servidor .. debes usar las funciones de:

exec() .. system() y afines para ejecutar esos comandos própios del S.O. que use dicho servidor (y que variará si es un Linux, ..o un Windows o el S.O. que use).

A todo esto, PHP tiene que tener permisos para ejecutar dichos comandos. Configuraciones de PHP tipo "Safe Mode" no permiten ejecutar comandos en la "consola" y a nivel de permisos y restricciones que tiene PHP como usuario del sisitema (PHP sale al sistema con usuario "Nobody" o el que use "Apache" en sistemas *NIX (Linux, etc).) así podrá ejecutar comandos.

Pero, .. si lo que buscas es sólo "mover archivos, renombrar, copiar .. etc" para eso PHP ya dispone de funciones para manejo de archivos. De forma totalmente transparente para el S.O. que use el servidor= mismo código -> da igual el S.O. del servidor ..

Me refiero a las funciones que encontraras en:
http://www.php.net/manual/en/ref.filesystem.php

como .. copy(), chmod(), mkdir(), etc. dir()

Con todas esas funciones podrás recorrer dinámicamente direcctorios de tu servidor y realizar las acciones que necesites.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 21:45.