Если у вас нет возражений против создания и запуска stored procedure
в базе данных, вы можете сделать это полностью без использования PHP.
create procedure `speditalltables`()
begin
declare _strsql varchar(512);
declare _table varchar(128);
declare done int default false;
declare res integer default 0;
declare _cursor cursor for select `table_name` as 'name'
from `information_schema`.`tables`
where `table_type`='base table' and `table_schema`=database();
declare continue handler for not found set done=true;
open _cursor;
repeat
fetch _cursor into _table;
if not done then
/* different column names ~ edit as appropriate */
set @strsql=concat("update `",database(),"`.`",_table,"`
set
`filepath`=replace( `filepath`, '/uploads/', '/files1/' ),
`filepath2`=replace( `filepath`, '/uploads/', '/files1/' ),
`filepath3`=replace( `filepath`, '/uploads/', '/files1/' ),
`filepath4`=replace( `filepath`, '/uploads/', '/files1/' )");
prepare stmt from @strsql;
execute stmt;
deallocate prepare stmt;
end if;
until done end repeat;
close _cursor;
select 'finished' as 'result';
set done=null;
set @res=null;
set @_table=null;
end
При помощи библиотек, таких как следующие, которые, в свою очередь, используют последовательности символа ESC
NAME ncurses - CRT screen handling and optimization package SYNOPSIS #include DESCRIPTION The ncurses library routines give the user a terminal-independent method of updating character screens with reasonable optimization. This implementation is ‘‘new curses’’ (ncurses) and is the approved replacement for 4.4BSD classic curses, which has been discontinued. [...snip....] The ncurses package supports: overall screen, window and pad manipulation; output to windows and pads; reading terminal input; control over terminal and curses input and output options; environment query routines; color manipulation; use of soft label keys; terminfo capabilities; and access to low-level terminal-manipulation routines.
Короткий ответ: существуют библиотеки для него (как проклятия, сленг).
Более длинный ответ: выполнение вещей как переход вокруг с курсором или изменением цветов сделано путем печати последовательностей специального символа (названный escape-secquences, потому что они запускают с символа ESC).
Приобретение знаний о ncurses могло бы быть хорошей начальной точкой.
Вы также заметите это при вводе "редактирования" в консоли командной строки Windows. Эта "функция" не уникальна для подобных Unix систем, хотя понятия для управления консолью окон таким образом очень отличаются к в Unix.
В системах Unix консоль эмулирует древний последовательный терминал (обычно VT100). Можно распечатать специальные управляющие символы и escape-последовательности, чтобы переместить курсор, цвета изменения, и сделать другие специальные эффекты. Существуют библиотеки, чтобы помочь обработать детали; ncurses является самым популярным.
В Windows, [Консоль Win32 API] (http://msdn.microsoft.com/en-us/library/ms682073 (По сравнению с 85%29.aspx) обеспечивает схожую функциональность, но довольно другим способом.
Существует старый протокол, названный vt100 на основе терминала "VT100". Это использовало коды, начинающие с Escape управлять позицией курсора, цветом, очищая экран, и т.д.
Это также, как Вы получаете цветные подсказки.
Google VT100 или "терминальные управляющие коды"
править: Я Погуглил его для Вас: http://www.termsys.demon.co.uk/vtansi.htm
Больше конкретной командной строки Windows, приложение обычно вызывает функции DOS или BIOS, которые делают то же. Поддержка кода команды Sometimes ANSI доступна, иногда это не (в зависимости от точной версии ОС MS и настроено ли это для загрузки его).
Введите "c:\winnt\system32\edit" или "c:\windows\system32\edit" в командной строке, и Вам покажут текстовый редактор командной строки.
Люди главным образом правы относительно символа ESC, используемого для управления экраном команды, но некоторые более старые программы также пишут символы непосредственно в пространство памяти, используемое экраном Windows Command Line.
Для управления окном командной строки Вы раньше писали Ваши собственные формы работы с окнами, поле записи, меню, и т.д. Необходимо было бы также перенести все это в большой цикл для обработки событий.