Помогите с реализацией на php
Страницы: 1
Помогите с реализацией на php
Возникла задача, предположим у нас файл, в котором 100 строк чего либо т.е $x=100; и мне нужно его разбить на 5 частей т.е $y=5; шаг цикла получается 25 $shag=25; затрудняюсь в реализации. нужно чтоб файл разбился на 5 частей и каждая часть записалась в отдельный файл.
Если интересно могу дать контакты своего программиста в лс, за пиво думаю поможет
Вот как нужно делать сайты Bezlimi.com
Код
$x = file('file.txt');
$i =0;
while ($i<20) {
$file = fopen("file1.dat","a++");
   flock($file,LOCK_EX);
      fputs($file, $x[$i]);
      fflush($file);
   flock($file,LOCK_UN);
   $i++;
fclose($file);
}
$i =20;
while ($i<40) {
$file = fopen("file2.dat","a+");
   flock($file,LOCK_EX);
      fputs($file, $x[$i]);
      fflush($file);
   flock($file,LOCK_UN);
   $i++;
fclose($file);
}
$i =40;
while ($i<60) {
$file = fopen("file3.dat","a+");
   flock($file,LOCK_EX);
      fputs($file, $x[$i]);
      fflush($file);
   flock($file,LOCK_UN);
   $i++;
fclose($file);
}
$i =60;
while ($i<80) {
$file = fopen("file4.dat","a+");
   flock($file,LOCK_EX);
      fputs($file, $x[$i]);
      fflush($file);
   flock($file,LOCK_UN);
   $i++;
fclose($file);
}
$i =80;
while ($i<100) {
$file = fopen("file5.dat","a+");
   flock($file,LOCK_EX);
      fputs($file, $x[$i]);
      fflush($file);
   flock($file,LOCK_UN);
   $i++;
fclose($file);
}
Изменено: Coder - 8 Августа 2014 09:16
Coder, большое спасибо, хороший пример, теперь есть от чего оттолкнутся, значение $i до скрипта рендомное, в соответствие и имена файлов будут пошаговыми...
Изменено: flynstr - 8 Августа 2014 10:31
Цитата
flynstr пишет:
Coder , большое спасибо
Пожалуйста)
Вообщем свою задачу решил так!

Код
 $tmp_dir="tmp/";
function gen($FILEb,$ia,$Shc,$i){
   while ($ia<$Shc) {
      $mail_str.=$FILEb[$ia]; //записываем в переменную номер строчки
      $ia++; //следущая строчка в цикле
}
echo $i."<hr>".$mail_str."<hr>";
$fp = fopen($tmp_dir."mail_".$i.".txt", "a+");
 fwrite($fp, $mail_str."\n");
 fclose($fp);
}

function rebild_e($Shc,$page,$FILE) {
$FILEb=file($FILE);
$ia=0; 
$b=$Shc;
for($i=0; $i<$page; $i++) {

//цикл генерации файла на шаг
gen($FILEb,$ia,$b,$i);

$b=$Shc*($i+1);
   if($b<=$ia){
   $ia=$ia-$b;
      }
      elseif($ia=$b){
      $b=$b+$Shc;
      }
      else {$ia=$ia+$Shc;}

}
}
rebild_e('500','6','mmm.txt');


Может кому пригодиться в подобное решение!
Изменено: flynstr - 8 Августа 2014 14:49
А можно еще так сделать:

Код
$x = file('file.txt'); 
foreach($x as $key => $str){ 
if($key>=0 AND $key<20){$fo = fopen('1.txt', 'a');fwrite($fo, $str);} 
if($key>=20 AND $key<40){$fo = fopen('2.txt', 'a');fwrite($fo, $str);} 
if($key>=40 AND $key<60){$fo = fopen('3.txt', 'a');fwrite($fo, $str);} 
if($key>=60 AND $key<80){$fo = fopen('4.txt', 'a');fwrite($fo, $str);} 
if($key>=80 AND $key<100){$fo = fopen('5.txt', 'a');fwrite($fo, $str);} 
}


Компактно и красиво )))
100 операций чтения и записи - красиво? ну-ну...
Изменено: Александр - 1 Января 2015 15:12
Цитата
Александр пишет:
100 операций чтения и записи - красиво? ну-ну...

Ну и зачем такой пост. Напиши как должно быть тогда, я всегда готов учиться.
К первой строчке претензий вообще нет:
Код
$x = file('file.txt');
тут без вопросов - все отлично, если файл не будет иметь размер в пару гигов конечно... 
Но все, что внутри цикла - ужас.

Начать с того, что по условию разбивать на до по 25 строк, а не по 20. Оп, уже садиться этот кусок переписывать? А если завтра по 5 надо будет или по 1? 100 раз скопипастите? а если строк не 100, а 10000?

Сейчас в КАЖДОЙ итерации открывается файл на запись...smile:eek: Почему бы не подготовить несколько строк сперва и не скинуть их в файл только 1 раз, а не 20 раз как сейчас - все продуктивнее будет и быстрее по времени.
Изменено: Александр - 3 Января 2015 10:50
Гыгы)) Раньше тоже думал, блин, надо все делать безупречно, все вылизывать и стремиться к идеалу! Но как правило лучше сделать чтобы просто работало! И не тратить время. Лучше сделать 100 вещей от п;;;ы, чем одну идеально)))
Страницы: 1
Похожие темы:
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
18:44 LOSPOLLOS.COM - Конвертим по рецепту Хайзенберга. Dating, Mainstream, Binary Options 
13:12 Покупные ссылки 
12:57 Rotapost прикрыли! Чем пользоваться? 
17:00 Стоит ли добавлять сайт в Rambler топ 100? 
15:12 Ночной бар в Паттайе: как случайная встреча с "тайкой" и её кадыком перевернула мой взгляд на продвижение сайта в Google 2026 
15:01 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
07:24 3snet - гемблинг, беттинг, форекс, бинарные опционы, майнинг 
20:07 BestX24 - быстрый и безопасный обменник криптовалют и электронных денежных средств 
16:31 CryptoGraph — Анонимный обмен криптовалют без KYC и AML 
15:37 Продажа лидов: форекс, инвестиции, нативка, гемблинг, чарджбеки 
14:49 Рассылки СМС/SMS, Вайбер/Viber, Ватсап/Whatsapp, Телеграм/Telegram любой тематики по всему миру 
01:31 Продам обменник криптовалюты, а также новый обменник под ключ с обучением. Скидки на скрипты обменника 
01:07 Full-Stack Developer — Сайты и Софт любой сложности | Developer Websites and Soft of any Complexity! 
20:42 E-currency.exchange — ваш помощник в мире обменов 
18:35 С юмором по жизни! 
22:59 Про мясо 
15:07 Добро пожаловать в цифровой мир... 
22:12 BYTIK.shop – сервис по продвижению в популярных социальных сетях​ 
10:10 накрутка трафика в SimilarWeb 
16:50 Компьютерная мышь 
23:03 Точные прогнозы на футбол