Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Создание файлов
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Создание файлов

Страниц (1): [1]
 

1. black_ru - 04 Июля, 2011 - 01:13:33 - перейти к сообщению
Подскажите, в учебных целях интересуюсь. Нужно php-скриптом создать файл с именем 0.dat, затем, при вторичном выполнении создать файл 1.dat и так далее.
Я так понимаю, нужно использовать file_exists и инкремент имени файла?!
2. SAD - 04 Июля, 2011 - 09:02:45 - перейти к сообщению
yes
3. black_ru - 04 Июля, 2011 - 11:18:39 - перейти к сообщению
Если можно , пример . У меня получается либо рекурсивно создавать огромное число файлов, либо только два, т.е. инкремент происходит один раз.
4. Саныч - 04 Июля, 2011 - 12:07:48 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. for ($n = 0; $n >= 0; $n++) {
  2.    if (file_exists($n.'.dat')) continue;
  3.    fopen($n.'.dat','w');
  4.    break;
  5. }
5. black_ru - 04 Июля, 2011 - 16:00:51 - перейти к сообщению
Саныч, спасибо.

Можно еще спрошу, а если нужно прочитать и последний созданный файл. Как быть?
6. Саныч - 04 Июля, 2011 - 16:11:15 - перейти к сообщению
так чтоли?
PHP:
скопировать код в буфер обмена
  1. for ($n = 0; $n >= 0; $n++) {
  2.    if (file_exists($n.'.dat')) continue;
  3.    fopen($n - 1.'.dat','r');
  4.    //...
  5.    fopen($n.'.dat','w');
  6.    break;
  7. }
7. black_ru - 04 Июля, 2011 - 16:39:30 - перейти к сообщению
А до меня дошло уже, так сделал:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. for ($n = 0; $n >= 0; $n++) {
  3.          if (file_exists($n.'.txt')) continue;
  4. $n2=$n-1;
  5.  
  6. $text_of_file=join(file($n2.'.txt'));
  7. $message_array=explode('<br>',$text_of_file);
  8. fclose( $file_handle);
  9. echo "$message_array";
  10. echo "$n2.'.txt'";
  11.          break;
  12. }
  13.  


Спасибо и вам.
8. black_ru - 04 Июля, 2011 - 21:10:04 - перейти к сообщению
Саныч, пока меня не выгнали с форума, спрошу еще:
Нужно сделать переход по этим страницам, т.е. если отобразилась последняя, нажал на ссылку предпоследняя, Например, текущая на странице 9.dat нажал предыдущая 8.dat, 7.dat и т.д.
Пока не знаю как запомнить значение, пытаюсь переделать найденный в интернете код:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. for ($n = 0; $n >= 0; $n++) {
  5.         if (file_exists('baza/'.$n.'.txt')) continue;
  6. $n2=$n-1;
  7. $contents = file_get_contents('baza/'.$n2.'.txt', true);
  8. print "<table width=70% align=center><td width=70%>$contents</td></table>";
  9. echo "baza/'.$n2.'.txt'";
  10.         break;
  11. }
  12.  
  13. $pages_count = $n2;
  14. echo "$pages_count";
  15. $current_page = (isset($_GET['page'])) ? $_GET['page'] : $pages_count;
  16.  
  17. switch($current_page) {
  18.    case $pages_count -1: {
  19.  $page_link = ($current_page == 0) ? '' : '<a href="?page='.($current_page-1).'">Предыдущая страница</a>';
  20.  
  21. break;
  22.    }
  23.    case '0': {
  24.  $page_link = ($current_page == $pages_count - 1) ? '' : '<a href="?page='.($current_page+1).'">Следующая страница</a>';
  25.  
  26. break;
  27.    }
  28.    default: {
  29.  $page_link = '<a href="?page='.($current_page-1).'">Предыдущая страница</a> | <a href="?page='.($current_page+1).'">Следующая страница</a>';
  30.  
  31.    }
  32. }
  33.  
  34.  
  35. echo $page_link;
  36. ?>
  37.  
9. Саныч - 04 Июля, 2011 - 21:19:56 - перейти к сообщению
ну так вы ж в своем коде уже почти все сделали... Выводите ссылку с параметром page равному номеру необходимой страницы... все...
10. black_ru - 04 Июля, 2011 - 23:08:18 - перейти к сообщению
А все , осенило меня

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.  
  3.  
  4. for ($n = 0; $n >= 0; $n++) {
  5.         if (file_exists('baza/'.$n.'.txt')) continue;
  6.  
  7.         break;
  8. }
  9.  
  10.  
  11. $pages_count = $n;
  12.  
  13. $current_page = (isset($_GET['page'])) ? $_GET['page'] : $pages_count-1;
  14.  
  15.  
  16.  
  17. switch($current_page) {
  18.    case $pages_count -1: {
  19.  $page_link = ($current_page == $pages_count) ? '' : '<a href="?page='.($current_page-1).'">Предыдущая страница</a>';
  20. break;
  21.    }
  22.    case '0': {
  23.  $page_link = ($current_page == $pages_count - 1) ? '' : '<a href="?page='.($current_page+1).'">Следующая страница</a>';
  24.  
  25. break;
  26.    }
  27.    default: {
  28.  $page_link = '<a href="?page='.($current_page-1).'">Предыдущая страница</a> | <a href="?page='.($current_page+1).'">Следующая страница</a>';
  29. break;
  30.    }
  31.  
  32. }
  33.  
  34.  
  35. $contents1 = file_get_contents('baza/'.$current_page.'.txt', true);
  36. print "<table width=70% align=center><td width=70%>$contents1</td></table>";
  37.  
  38.  
  39. echo "<center>$page_link</center> <a href=index.php>Главная</a>";
  40.  
  41.  
  42.  
  43. ?>
  44.  

Подставил вместо ноля $current_page; а потом ее же вывел в качестве переменной для файла Улыбка ну и тугодум же я... Саныч, Спасибо за помощь большое

 

Powered by ExBB FM 1.0 RC1