Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kopiowanie pliku i małe zmiany
dnawrot
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.06.2004

Ostrzeżenie: (0%)
-----


Witam,

Mam taki skrypt, który wyświetla w tabeli pliki graficzne. I chciałbym, żeby następna strona galerii już była generowana przez skrypt, z niewielkimi, acz istotnymi zmianami. Chodzi o tablicę, która jest odpowiedzialna za nazwy plików oraz ich (count) ilość. Poniżej zamieszczam kod wraz z komentarzami (będzie łatwiej wytłumaczyć).


  1. <?
  2.  
  3. //lista plików na srwerze w katalogu images
  4.  
  5. $dir=opendir('./images'); 
  6.  
  7.  
  8. $file_list=" "; 
  9. while($file_name=readdir($dir)) 
  10. { 
  11. if(($file_name!=".")&&($file_name!="..")) 
  12. { 
  13. $file_list.=" $file_name"; 
  14. } 
  15. } 
  16. $file_list.=""; closedir($dir); 
  17.  
  18. //umieszczenie w tablicy nazw plików z kat. images
  19.  
  20. $dupa = explode(" ", $file_list);
  21.  
  22.  
  23. // tutaj zaczyna się generowanie tabeli wypełnianej plikami graficznymi
  24.  
  25. echo "<center><table border='0'><p class='paragraph'>";
  26.  
  27. for ($index = 2; $index < count($dupa); $index++) 
  28.  {
  29. if ($index > 17) {
  30.  
  31.  
  32.  
  33. /* tutaj natomiast rozpoczyna się tworzenie pliku (kopiowanie) i chciałbym żeby w nowym pliku pętla wyglądała nieco inaczej, mianowicie ż
    eby zaczynała się od pliku 17 i konczyła na 32, a poza tym żeby do tych poniższyc
    h warunków odnośnie wstawiania znacznika tr również było dodawane 16. Jak to zrob
    ić?*/
  34.  
  35.  
  36. $aCurBasePath = dirname( $PATH_TRANSLATED );
  37. $aNewName = "gallery".$index.".php" . $thefile;
  38. $thefile = "gallery.php";
  39.  
  40. if (file_exists($aNewName)) 
  41. {
  42.  echo "<a href='".$aNewName."'><center>Następna strona</center></a><br><br>"; 
  43. }
  44.  else
  45. {
  46.  
  47. copy ($thefile, $aNewName );
  48.  echo "<a href='".$aNewName."'><center>Następna strona</center></a><br><br>";
  49.  
  50. }
  51.  
  52. break;
  53.  
  54. }
  55.  
  56.  
  57.  
  58.  
  59. else if ($index == 2 || $index == 6 || $index == 10 || $index == 14)
  60.  {
  61.  
  62. echo "<tr>";
  63. echo "<td align='center'>$dupa[$index]<br><a href = 'images/".$dupa[$index]."'><img border = '0' src = 'images/".$dupa[$index]."' width = '100' height = '75'></a> <form method='post' action = 'del.php'><input type = 'submit' name = '".$dupa[$index]."'></form> <br></td>";
  64.  
  65.  }
  66.  
  67.  
  68. else if ($index == 6 || $index == 10 || $index == 14 || $index == 18)
  69.  
  70.  {
  71.  
  72.  
  73. echo "<td align='center'>$dupa[$index]<br><a href = 'images/".$dupa[$index]."'><img border = '0' src = 'images/".$dupa[$index]."' width = '100' height = '75'></a> <form method='post' action = 'del.php'><input type = 'submit' name = '".$dupa[$index]."'></form> <br></td>";
  74.  
  75. echo "</tr>";
  76.  
  77.  }
  78.  
  79.  
  80. else if ($index != 2 || $index != 6 || $index != 10 || $index != 14)
  81.  
  82.  {
  83.  
  84.  
  85. echo "<td align='center'>$dupa[$index]<br><a href = 'images/".$dupa[$index]."'><img border = '0' src = 'images/".$dupa[$index]."' width = '100' height = '75'></a> <form method='post' action = 'del.php'><input type = 'submit' name = '".$dupa[$index]."'></form> <br></td>";
  86.  
  87.  
  88.  }
  89.  
  90.  
  91.  
  92. } 
  93.  
  94. //koniec petli
  95.  
  96. ?>
(IMG:http://forum.php.pl/uwaga.gif)
poprawiam
---
nospor





A ponadto może jak już proszę o pomoc, to powiedzcie mi jak zrobić link lub zwykły input, który byłby odpowiedzialny za usuwanie konkretnego zdjęcia (tego pod którym input się znajduje)(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? To też mi nie działa tak jak trzeba.


Dzięki z góry za odpowiedzi.

Jak coś to cały kod (skrypt znajduje się tutaj)


http://www.dnawrot.webas.pl/php/gallery.php

Pozdrawiam
dnawrot
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Ludvik
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dodawanie kolejnych nazw plików do stringa oddzielonych spacją to nie jest najlepszy pomysł... Najlepiej od razu je do tabeli dodaj.
  1. <?php
  2. $files[] = $file_name;
  3. ?>

Usuwanie to tylko znajomość htmla...
Link:
  1. <a href="usun.php?id=x">link</a>

Przycisk:
  1. <form action="usun.php" method="get">
  2. <input type="hidden" name="id" value="x" />
  3. </form>

W obu przypadkach x jest identyfikatorem lub nazwą zdjęcia, które chcesz usunąć. W skrypcie usun.php będziesz miał zmienną $_GET['id']. Druga metoda pozwala na przesłanie POST-em. Uważaj na te zmienne, bo to częsty błąd nie sprawdzać wejścia... Zawsze trzeba je sprawdzić...
Go to the top of the page
+Quote Post
dnawrot
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.06.2004

Ostrzeżenie: (0%)
-----


dobra dzięki, usuwanie działa jak należy, ale nie wiem za bardzo o co chodzi z tym tworzeniem pliku, prosiłbym trochę jaśniej, bo ciemny jestem z php

pozdrawiam

Ten post edytował dnawrot 10.05.2006, 12:59:32
Go to the top of the page
+Quote Post
Ludvik
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Chodziło mi o to, że trochę przekombinowałeś z wydobywaniem nazw plików. Ty robisz to tak:
  1. <?php
  2. $file_list=" "; 
  3. while($file_name=readdir($dir)) 
  4. { 
  5. if(($file_name!=".")&&($file_name!="..")) 
  6. { 
  7. $file_list.=" $file_name"; 
  8. } 
  9. } 
  10. $file_list.=""; closedir($dir); 
  11.  
  12. //umieszczenie w tablicy nazw plików z kat. images
  13.  
  14. $dupa = explode(" ", $file_list);
  15. ?>

Pomijając nazwę tablicy z nazwami plików i to, że explode wypluje tablicę z dwoma pierwszymi elementami pustymi, oraz to, że nazwy plików zawierające spacje rozwalą tablicę, to łatwiej i szybciej od razu nazwy umieszczać w tablicy.
  1. <?php
  2. $fileNames = array()
  3. while ($fileName = readdir($dir)) {
  4. if ($fileName != '.' && $fileName != '..') {
  5. $fileNames[] = $fileName;
  6. }
  7. }
  8. ?>


W rezultacie masz tablicę $fileNames zawierającą te same dane, ale kod jest pozbawiony błędów, szybszy i czytelniejszy.
Go to the top of the page
+Quote Post
dnawrot
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.06.2004

Ostrzeżenie: (0%)
-----


Dzięki za zwrócenie uwagi, poprawię to. Ale czy możesz mi powiedzieć jak rozwiązać problem z tworzeniem nowych plików, a w zasadzie kopiowaniem plików php? A poza tym jeszcze jedna rzecz mi przyszła na myśl. W momencie przechodzenia do następnej strony galerii nie tylko musi być tworzona następna strona .php, ale jeśli okaże się że nie ma więcej plików to następna, która została stworzona przy ostatnim wywoływaniu skryptu musi być usunięta. Nie wiem czy dobrze mnie zrozumiałeś. Ponadto, przydałoby się aby przy ostatniej stronie wyświetlany był tylko link "poprzednia strona", a nie "poprzednia || następna". Dzięki z góry za odpowiedź. Pozdrawiam
dnawrot
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:41