|
|
|
|
|
для: PyccHeBa
(06.11.2007 в 02:11)
| |
<?
$fp = fopen("data.txt", "r");
$new = fopen("new.txt", "w");
fwrite($new, "некоторые данные в начале файла\r\n");
while ( !feof($fp) )
fwrite($new, fread($fp, 1024));
|
~0.1 секунды
Порядок этого числа уменьшается при увеличении второго параметра функции fread(). | |
|
|
|
|
|
|
|
для: PyccHeBa
(06.11.2007 в 02:11)
| |
<?php exec('cat file1 file2 > file3') ?>
|
| |
|
|
|
|
|
|
|
для: EXP
(03.11.2007 в 05:13)
| | Спасибо, но что то сложное получается ((
Нет ли какой нибудь команды в PHP чтобы назначить команду LINUX cat file1 file2 > file3 | |
|
|
|
|
|
|
|
для: PyccHeBa
(03.11.2007 в 04:57)
| |
<?php
list($headtime, $time) = explode(chr(32), microtime());
$headtime = ($time + $headtime); # время начала работы
$file_res1 = fopen('test.txt', 'w');
flock($file_res1, 2);
$file_res2 = fopen('index.php', 'r'); // ~40k
flock($file_res2, 1);
fwrite($file_res1, fread($file_res2, filesize( 'index.php' ))) ;
flock($file_res2, 3);
fclose($file_res2);
$file_res2 = fopen('php_manual_ru.html', 'r'); // ~16mb
flock($file_res2, 1);
while($string = fread($file_res2, 10000)) // дозапись по 10000 байт например
{
fwrite($file_res1, $string) ;
}
flock($file_res1, 3);
flock($file_res2, 3);
fclose($file_res1);
fclose($file_res2);
// unlink( 'filename.txt' ) ; // удаление
// rename( 'new_filename.txt', 'filename.txt' ); // переименование
list($msec,$sec) = explode(chr(32), microtime());
echo '<hr />[_' . round(($sec + $msec) - $headtime, 4) . 's_]';
?>
|
[_0.157s_]
<?php
list($headtime, $time) = explode(chr(32), microtime());
$headtime = ($time + $headtime); # время начала работы
$test = `copy /Y /A "D:\\WebServers\\home\\test2.ru\\www\\LIB\\index.php" + /A "D:\\WebServers\\home\\test2.ru\\www\LIB\\php_manual_ru.html" /A "D:\\WebServers\\home\\test2.ru\\www\\LIB\\test.txt"` ;
echo $test ;
list($msec,$sec) = explode(chr(32), microtime());
echo '<hr />[_' . round(($sec + $msec) - $headtime, 4) . 's_]';
?>
|
[_0.3517s_]
никак не куплю себе ещё оперативной памяти (: | |
|
|
|
|
|
|
|
для: PyccHeBa
(03.11.2007 в 04:06)
| | хотелось бы сделать очень просто - взять объединить 2 файла по принципу cat file1 file2 > file3
Как это сделать? Вышепредложенный метод не сработал. У меня Win, на сервере Linux | |
|
|
|
|
|
|
|
для: PyccHeBa
(03.11.2007 в 03:00)
| | Вообще, предыдущий пример EXP с чтением и записью в цикле должен работать при любом размере файла. Так как в памяти в каждый отдельный момент времени только небольшая часть. | |
|
|
|
|
|
|
|
для: EXP
(03.11.2007 в 03:06)
| | А цикл не займет много времени? PHP работает медленно, а файл содержит 100 000 строк почти 6 мгб | |
|
|
|
|
|
|
|
для: PyccHeBa
(03.11.2007 в 03:00)
| | >объединить файлы командой linux вызванной из php например, cat file1 file2 > file3
наверное можно, незнаю правильно-ли так, на виндовзе не работает )
<?php
system("cat file1 > file3");
system("cat file2 >> file3");
?>
|
| |
|
|
|
|
|
|
|
для: bronenos
(03.11.2007 в 00:05)
| | можно ещё, если первый файл ненужен после этого, просто открыть его для дозаписи
fopen('file1.txt', 'a'); и в цикле считать и добавить второй | |
|
|
|
|
|
|
|
для: bronenos
(03.11.2007 в 00:05)
| | Да, но если я присвою строковой переменной fread, то нельзя слишком большой файл, как я понимаю. Можно ли объединить файлы командой linux вызванной из php например, cat file1 file2 > file3 | |
|
|
|
|