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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Раскидать 300 строк по 15 штук в 20 документов.
 
 автор: idimka   (02.06.2007 в 03:27)   письмо автору
 
 

Подскажите, пожалуйста, как реализовать следующее:
Есть текстовый документ, в нем 300 строк.
Надо раскидать эти строки по 15 штук в 20 документов.

   
 
 автор: bronenos   (02.06.2007 в 07:25)   письмо автору
 
   для: idimka   (02.06.2007 в 03:27)
 

<?php
$full 
file ('full.txt');
for (
$i=0$i<20$i++)
{
  
$short array_slice ($full, ($i*15), 15);
  
$fp fopen ("short_$i.txt"'w');
  
fwrite ($fpimplode(''$short));
  
fclose ($fp);
}
?>

   
 
 автор: Trianon   (02.06.2007 в 12:12)   письмо автору
 
   для: idimka   (02.06.2007 в 03:27)
 


<?php 
  
for ($full fopen("full.txt""rb"),$i=0$i<20$i++) 
    for(
$short fopen ("short_$i.txt"'wb'), 0$j 20$j++)
      
fputs($shortfgets($full));
?> 

   
 
 автор: Unkind   (02.06.2007 в 12:15)   письмо автору
 
   для: Trianon   (02.06.2007 в 12:12)
 

$j = 0

   
 
 автор: Trianon   (02.06.2007 в 13:19)   письмо автору
 
   для: Unkind   (02.06.2007 в 12:15)
 

Да, конечно :)

   
 
 автор: bronenos   (02.06.2007 в 12:58)   письмо автору
 
   для: Trianon   (02.06.2007 в 12:12)
 

сомневаюсь, что он обойдет 300 строк

   
 
 автор: Trianon   (02.06.2007 в 13:19)   письмо автору
 
   для: bronenos   (02.06.2007 в 12:58)
 

ему что-то помешает?

   
 
 автор: bronenos   (02.06.2007 в 13:50)   письмо автору
 
   для: Trianon   (02.06.2007 в 13:19)
 

попробуйте запустить, у меня сомнения.... ))

   
 
 автор: Trianon   (02.06.2007 в 15:52)   письмо автору
 
   для: bronenos   (02.06.2007 в 13:50)
 

Запустил. Учтя правку Unkind'а, конечно же.

Теперь попробуйте Вы. Возможно, сомнения уйдут :)))

   
 
 автор: bronenos   (02.06.2007 в 16:37)   письмо автору
 
   для: Trianon   (02.06.2007 в 15:52)
 

не запуская скажу что он кладет в файлы по 20 строк :)

   
 
 автор: Trianon   (02.06.2007 в 20:25)   письмо автору
 
   для: bronenos   (02.06.2007 в 16:37)
 

ну и? :))) Триста не положит? По-моему, положит даже четыреста.

   
 
 автор: bronenos   (02.06.2007 в 20:56)   письмо автору
 
   для: Trianon   (02.06.2007 в 20:25)
 

я просто при беглом просмотре заметил что что то не так
потом понял что он просто берет по 20 строк
извиняюсь за шум)

можете постучаться? 4110863

   
 
 автор: Trianon   (02.06.2007 в 21:06)   письмо автору
 
   для: bronenos   (02.06.2007 в 20:56)
 

Сейчас - нет. Нечем. В будни - пожалуйста.

   
 
 автор: pornocat   (08.06.2007 в 16:30)   письмо автору
 
   для: Trianon   (02.06.2007 в 12:12)
 

а как сделать стобы документы создавались в .htm а не в .txt

   
 
 автор: pornocat   (08.06.2007 в 16:30)   письмо автору
 
   для: Trianon   (02.06.2007 в 12:12)
 

а как сделать стобы документы создавались в .htm а не в .txt

   
 
 автор: Unkind   (08.06.2007 в 16:40)   письмо автору
 
   для: pornocat   (08.06.2007 в 16:30)
 

Посмотреть внимательно код и заменить txt на htm.

   
 
 автор: Trianon   (08.06.2007 в 16:44)   письмо автору
 
   для: pornocat   (08.06.2007 в 16:30)
 

внутри внешнего цикла дописать вывод шапки и подножия.
строки при выводе прогонять через htmlspecialchars.
при необходимости добавлять <br/>

   
 
 автор: pornocat   (08.06.2007 в 16:49)   письмо автору
 
   для: Trianon   (08.06.2007 в 16:44)
 

Если не сложно может напишете более подробно

   
 
 автор: idimka   (03.06.2007 в 23:28)   письмо автору
 
   для: idimka   (02.06.2007 в 03:27)
 

Спрасибо большое!
Мне хотелось бы еще выполнить одну задачу:
я хочу 15 слов вставить в определенное место, а конкретнее указать какое-то слово в short.txt и дописать к нему те 15 слов.
Я попробовал написать, но у меня не получилось. Получились пустые документы full.txt.
Поправьте, если не сложно:

<?php
$full 
file ('full.txt');
for (
$i=1$i<20$i++)
{
  
$short array_slice ($full, ($i*15), 15);
  
$fp open ("short_$i.txt"'w');
  
str_replace ("slovo""slovo.$short"$fp);
   
fclose ($fp);
?>

   
 
 автор: bronenos   (03.06.2007 в 23:36)   письмо автору
 
   для: idimka   (03.06.2007 в 23:28)
 

<?php 
$full 
file ('full.txt'); 
for (
$i=1$i<20$i++) 

  
$short array_slice ($full, ($i*15), 15); 
  
$file file_get_contents ("short_$i.txt");
  
$file str_replace ("slovo""slovo.$short"$file);

  
$fp fopen ("short_$i.txt"'w'); 
  
/* flock ($fp, 2); */
  
fwrite ($fp$file);
  
/* flock ($fp, 3); */ 
  
fclose ($fp);
}
?>

   
 
 автор: idimka   (03.06.2007 в 23:59)   письмо автору
 
   для: idimka   (02.06.2007 в 03:27)
 

Замена не идет:

 $file = str_replace ("slovo", "slovo.$short", $file); //вместо $short подставляется Array

   
 
 автор: bronenos   (05.06.2007 в 14:22)   письмо автору
 
   для: idimka   (03.06.2007 в 23:59)
 

протупил..

   
 
 автор: idimka   (05.06.2007 в 13:00)   письмо автору
 
   для: idimka   (02.06.2007 в 03:27)
 

Ребят, кто-нибудь помогите мне пожалуйста с заменой, я не пойму в чем ошибка. Уже с этими кавычками помучился, код не очень догоняю, я еще новичок. Но этот код позарез нужен.

   
 
 автор: bronenos   (05.06.2007 в 14:23)   письмо автору
 
   для: idimka   (05.06.2007 в 13:00)
 

так?
<?
$short 
array_slice ($full, ($i*15), 15);
$short implode (' '$short);
?>

   
 
 автор: idimka   (05.06.2007 в 15:42)   письмо автору
 
   для: idimka   (02.06.2007 в 03:27)
 

Спасибо большое! Все работает.

   
 
 автор: idimka   (05.06.2007 в 15:45)   письмо автору
 
   для: idimka   (02.06.2007 в 03:27)
 

А implode () в данном случае заменяет перевод строки на пробелы? Просто интересно почему без этой строчки ничего не получалось...

   
 
 автор: bronenos   (05.06.2007 в 16:00)   письмо автору
 
   для: idimka   (05.06.2007 в 15:45)
 

он соединяет элементы массива в строку символом - первым параметром

   
 
 автор: idimka   (05.06.2007 в 23:07)   письмо автору
 
   для: idimka   (02.06.2007 в 03:27)
 

Вы знаете, я не много в расстерянности. str_replace () ведь работает с массивами, но зачем надо было применять implode (), а потом еще file_get_contents ()? Читал справочник не врубился.
Я вообще понимаю что implode () и file_get_contents () нужны здесь для того, чтобы массив превратить в строку. Или я бред говорю...

   
 
 автор: bronenos   (05.06.2007 в 23:19)   письмо автору
 
   для: idimka   (05.06.2007 в 23:07)
 

$a = array ('g', 'j', 'k');
print implode ('-', $a); /* g-j-k */


file_get_contents просто получает содержимое файла в виде строки

   
 
 автор: idimka   (06.06.2007 в 00:09)   письмо автору
 
   для: idimka   (02.06.2007 в 03:27)
 

Спасибо, теперь более менее понятно.

   
Rambler's Top100
вверх

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