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

Форум PHP

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

 

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

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

тема: переделать php скрипт
 
 автор: dron   (08.10.2005 в 00:37)   письмо автору
 
 

Есть скрипт: взят с учебника с softtime

<?


$dir_rec 
dir("gpio/mp3dir/$dir_style");
  
$i 0;
  while(
$entry $dir_rec->read())
  {
    if (
substr($entry,0,3)=="mp3")
    {
      
$names[$i]=substr($entry,4);
      
$i++;
    }
  }
  
$dir_rec->close(); 
  @
rsort($names); 

  
$count $i;
  
$count1 $count;
  if (empty(
$start))
  {
    
$start 0;
  }
  
$start intval($start);
  if (
$start 0)
  {
    
$start 0;
  }
  print 
"<center>";
  if (
$count $start 10$count $start 10;
  
 
  
  for (
$i $start$i $count$i++)
  {
    
$entry $names[$i];
 
$data file("gpio/mp3dir/$dir_style/mp3.".$entry);
$date $entry;
$title = ($data[0]);

print 
"<hr size='0' noshade color='#000000'><table width='100%' border='0' cellpadding='0' cellspacing='0' >
  <tr> 
    <td width='36%'bgcolor='#67859D'>
$title</td>
    </td>
  </tr>
</table>"
;


  }
   if (
$start != 0)
  {
    print 
"<A href=index.php?action=mp&style=$style&start=".($start 10)."><font  size=2>  На страницу вперёд :: </font></A>";
  }
  if (
$count1 $start 10)
  {
    print 
"<A href=index.php?action=mp&style=$style&start=".($start 10)."><font  size=2>:: На страницу назад</font></A>  \n";
  }
  
 
?>

как переделать его что бы отображались не надписи На страницу вперёд и На страницу назад, а все сраницы сразу типа 1|2|3|4| и т.д.
и что бы скрипт выводил не 10 на страницу а 20.
подскажите

   
 
 автор: cheops   (08.10.2005 в 02:33)   письмо автору
 
   для: dron   (08.10.2005 в 00:37)
 

Вы сможете найти решение в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3044

   
 
 автор: dron   (08.10.2005 в 22:07)   письмо автору
 
   для: cheops   (08.10.2005 в 02:33)
 

Почитал статью по ссылке но так и не смог разобраться что куда в верхнем скрипте вставить что б заработало

<?php 
    
if(!count($urlx)==0
    { 
       echo 
"<p><b>Страницы: "
       
// Выводим ссылку "Назад", если это не первая страница 
       
if($p != 1) echo "<a href='index.php?cat=$cat&p=".($p 1)."'>Назад</a> "
       for(
$i=1$i<=$xceil$i++) 
       { 
         if(
$i==$p
         { 
           
$color=" style='color=#888888'"
         } 
         else 
         { 
           
$color=''
         } 
         echo 
"<a href='index.php?cat=$cat&p=$i'$color>$i</a> "
       } 
       
// Выводим ссылку "Вперёд", если это не последняя страница 
       
if($p != $xceil) echo "<a href='index.php?cat=$cat&p=".($p 1)."'>Вперёд</a> "
       echo 
"</b></p>"
    } 
?>

cheops подскажи пожалуйста как этот код вставить в мой верхний скрипт, что бы работало.

   
 
 автор: cheops   (09.10.2005 в 01:50)   письмо автору
 
   для: dron   (08.10.2005 в 22:07)
 

Примерно следующим образом
<? 
  
// Число позиций на странице
  
$pnumber 10;
  
// Каталог
  
$dirname "songs5/";

  
$dir_rec dir($dirname); 
  while(
$entry $dir_rec->read()) 
  { 
    
// Извлекаем из имени файла расширение
    
if (strrchr($entry".") == ".mp3"
    { 
      
$names[] = substr($entry,4); 
    } 
  } 
  
$dir_rec->close(); 

  @
rsort($names); 
  
$count count($names);

  
// Проверяем номер страницы
  
if(isset($_GET['p'])) $p $_GET['p'];
  else 
$p 1;
  
$start $pnumber*($p 1);
  
$end $pnumber*$p;
  if(
$end $count$end $count;
   
  for (
$i $start$i $end$i++) 
  { 
    
$title $names[$i]; 

    print 
"<hr size='0' noshade color='#000000'>
           <table width='100%' border='0' cellpadding='0' cellspacing='0' > 
             <tr> 
               <td width='36%'bgcolor='#67859D'>
$title</td> 
             </tr> 
           </table>"

  } 

  if(
$count != 0
  { 
     
$totalpages = (int)($count/$pnumber);
     if((float)(
$count/$pnumber) - $totalpages != 0$totalpages++;

     echo 
"<p><b>Страницы: "
     
// Выводим ссылку "Назад", если это не первая страница 
     
if($p != 1) echo "<a href='$_SERVER[PHP_SELF]?cat=$cat&p=".($p 1)."'>Назад</a> "
     for(
$i=1$i<=$totalpages$i++) 
     { 
       if(
$i == $p
       { 
         
$color=" style='color=#888888'"
       } 
       else 
       { 
         
$color=''
       } 
       echo 
"<a href='$_SERVER[PHP_SELF]?cat=$cat&p=$i'$color>$i</a> "
     } 
     
// Выводим ссылку "Вперёд", если это не последняя страница 
     
if($p != $totalpages) echo "<a href='$_SERVER[PHP_SELF]?cat=$cat&p=".($p 1)."'>Вперёд</a> "
     echo 
"</b></p>"
  }   
?>

   
 
 автор: dron   (15.10.2005 в 00:32)   письмо автору
 
   для: cheops   (09.10.2005 в 01:50)
 

Спасибо cheops ! Разобрался всё заработало.
Если не трудно , подскажите как ещё туда добавить такую фишку что бы выведенные фаилы ещё с боку нумеровались, и которые закаченные раньше т.е. находятся на последних страницах нумеровались начиная с 1 а те которые закачались недавно нумеровались +1

   
 
 автор: cheops   (15.10.2005 в 00:51)   письмо автору
 
   для: dron   (15.10.2005 в 00:32)
 

Чего-то не очень понял кого и как нумеровать :))) Может примерчик?

   
 
 автор: dron   (15.10.2005 в 00:58)   письмо автору
 
   для: cheops   (15.10.2005 в 00:51)
 

Хорошо пример:

это первая страница(по 5 строк на 1 странице):

10) file.mp3
9) file.mp3
8) file.mp3
7) file.mp3
6) file.mp3

а это вторая:

5)file.mp3
4)file.mp3
3)file.mp3
2)file.mp3
1)file.mp3

   
 
 автор: cheops   (15.10.2005 в 01:17)   письмо автору
 
   для: dron   (15.10.2005 в 00:58)
 

Блок
<?php
  
for ($i $start$i $end$i++) 
  { 
    
$title $names[$i]; 

    print 
"<hr size='0' noshade color='#000000'> 
           <table width='100%' border='0' cellpadding='0' cellspacing='0' > 
             <tr> 
               <td width='36%'bgcolor='#67859D'>
$title</td> 
             </tr> 
           </table>"

  }
?>

следует переписать следующим образом
<?php
  
for ($i $start$i $end$i++) 
  { 
    
$title $names[$i]; 

    print 
"<hr size='0' noshade color='#000000'> 
           <table width='100%' border='0' cellpadding='0' cellspacing='0' > 
             <tr> 
               <td width='36%'bgcolor='#67859D'>"
.($count $i)."$title</td> 
             </tr> 
           </table>"

  }
?>

   
 
 автор: dron   (15.10.2005 в 01:28)   письмо автору
 
   для: cheops   (15.10.2005 в 01:17)
 

Всё работает!
Ещё раз спасибо!

   
Rambler's Top100
вверх

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