Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как добавить в начало файла данные не удаляя ничего?

Сообщения:  [1-10]   [11-18] 

 
 автор: Саня   (06.11.2007 в 16:09)   письмо автору
 
   для: PyccHeBa   (06.11.2007 в 02:11)
 

<?
$fp 
fopen("data.txt""r");
$new fopen("new.txt""w");

fwrite($new"некоторые данные в начале файла\r\n");

while ( !
feof($fp) )
  
fwrite($newfread($fp1024));

~0.1 секунды

Порядок этого числа уменьшается при увеличении второго параметра функции fread().

   
 
 автор: Unreal   (06.11.2007 в 15:51)   письмо автору
 
   для: PyccHeBa   (06.11.2007 в 02:11)
 

<?php exec('cat file1 file2 > file3'?>

   
 
 автор: PyccHeBa   (06.11.2007 в 02:11)   письмо автору
 
   для: EXP   (03.11.2007 в 05:13)
 

Спасибо, но что то сложное получается ((

Нет ли какой нибудь команды в PHP чтобы назначить команду LINUX cat file1 file2 > file3

   
 
 автор: EXP   (03.11.2007 в 05:13)   письмо автору
 
   для: 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_res12); 

$file_res2 fopen('index.php''r');  // ~40k
 
flock($file_res21); 
        
fwrite($file_res1fread($file_res2filesize'index.php' ))) ;
 
flock($file_res23); 
 
fclose($file_res2); 
 
$file_res2 fopen('php_manual_ru.html''r'); // ~16mb
 
flock($file_res21); 
  
while(
$string fread($file_res210000)) // дозапись по 10000 байт например 
    

        
fwrite($file_res1$string) ; 
    } 
flock($file_res13); 
flock($file_res23); 
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) - $headtime4) . '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) - $headtime4) . 's_]';

?>

[_0.3517s_]

никак не куплю себе ещё оперативной памяти (:

   
 
 автор: PyccHeBa   (03.11.2007 в 04:57)   письмо автору
 
   для: PyccHeBa   (03.11.2007 в 04:06)
 

хотелось бы сделать очень просто - взять объединить 2 файла по принципу cat file1 file2 > file3
Как это сделать? Вышепредложенный метод не сработал. У меня Win, на сервере Linux

   
 
 автор: Shiva   (03.11.2007 в 04:08)   письмо автору
 
   для: PyccHeBa   (03.11.2007 в 03:00)
 

Вообще, предыдущий пример EXP с чтением и записью в цикле должен работать при любом размере файла. Так как в памяти в каждый отдельный момент времени только небольшая часть.

   
 
 автор: PyccHeBa   (03.11.2007 в 04:06)   письмо автору
 
   для: EXP   (03.11.2007 в 03:06)
 

А цикл не займет много времени? PHP работает медленно, а файл содержит 100 000 строк почти 6 мгб

   
 
 автор: EXP   (03.11.2007 в 03:31)   письмо автору
 
   для: PyccHeBa   (03.11.2007 в 03:00)
 

>объединить файлы командой linux вызванной из php например, cat file1 file2 > file3
наверное можно, незнаю правильно-ли так, на виндовзе не работает )
<?php
system
("cat file1 > file3");
system("cat file2 >> file3");
?>

   
 
 автор: EXP   (03.11.2007 в 03:06)   письмо автору
 
   для: bronenos   (03.11.2007 в 00:05)
 

можно ещё, если первый файл ненужен после этого, просто открыть его для дозаписи
fopen('file1.txt', 'a'); и в цикле считать и добавить второй

   
 
 автор: PyccHeBa   (03.11.2007 в 03:00)   письмо автору
 
   для: bronenos   (03.11.2007 в 00:05)
 

Да, но если я присвою строковой переменной fread, то нельзя слишком большой файл, как я понимаю. Можно ли объединить файлы командой linux вызванной из php например, cat file1 file2 > file3

   

Сообщения:  [1-10]   [11-18] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования