Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie katalogu
Forum PHP.pl > Forum > Przedszkole
Przemek07
Witam, jestem tutaj nowy i proszę z tego względu o wyrozumiałość, gdyby temat okazałby się w nie odpowiednim temacie w co wątpię to przepraszam. Napisałem sobie taki o to niżej skrypt który pozwala mi tworzyć katalogi o nazwie wcześniej wpisanej w pliku z formularzem, ale występuje błąd gdy chcemy utworzyć drugi katalog o takiej samej nazwie jak znajdujący się już na serwerze. Bawiłem się, bawiłem i nic mi z tego nie wyszło... niżej efekty moich kombinacji, czy mógłby ktoś rzucić okiem na to i naprowadzić mnie, ew. poprawić mój skrypt? Zaznaczam że manuale już przeglądałem bo to właśnie na nich się opierałem ale po prostu pogubiłem się już... wstydnis.gif

Za pomoc bardzo dziękuje, pozdrawiam.

  1. <?php
  2. <html>
  3. <head><title>adserver</title></head>";
  4. $folder_name=ereg_replace('[|]','_',$folder_name);
  5. $folder_name=ereg_replace('[]','_',$folder_name);
  6. $folder_name=ereg_replace('[/]','_',$folder_name);
  7. $folder_name=ereg_replace('[<]','_',$folder_name);
  8. $folder_name=ereg_replace('[>]','_',$folder_name);
  9. $folder_name=ereg_replace('[:]','_',$folder_name);
  10. $folder_name=ereg_replace('[*]','_',$folder_name);
  11. $folder_name=ereg_replace('[?]','_',$folder_name);
  12. $folder_name=ereg_replace('["]','_',$folder_name);
  13.  
  14. $d = dir("../stats");
  15.   while($entry=$d->read()) {
  16.      echo $entry."
  17. \n";
  18.   }
  19.   $d->close();
  20.  
  21. if ($entry !== $folder_name) {
  22. if ($folder_name > empty($folder_name)){
  23. (mkdir ("../stats/$folder_name", 0700));echo"Utworzono folder o nazwie $folder_name";}
  24.  
  25. else {
  26. echo "Folder nie został utworzony";}
  27. }
  28.  
  29. else {
  30. echo "Folder o takiej nazwie istnieje";}
  31.  
  32. echo "</html>";
  33. ?>
mecenas
zależy jaki efekt chcesz uzyskać - czy w razie istnienia katalogu chcesz go nadpisać, czy pominąć tworzenie, czy też może koniecznie potrzebujesz nowego folderu?
Przemek07
Chciałbym pominąć tworzenie nowego z wyświetlaniem oczywiście informacji o tym iż taki katalog już istnieje i należy wybrać inną nazwę.
Maxik
is_dir" title="Zobacz w manualu PHP" target="_manual Ci pomoże.
Przemek07
Szczerze, nie bardzo wiem jak to zastosować do mojego skryptu, ale będę eksperymentował aż wyjdzie - tak chyba się najlepiej nauczę. Dzięki winksmiley.jpg
gox
ja bym to na szybkiego zrobil tak:

  1. <html>
  2. <head><title>adserver</title></head>";
  3. <?php
  4.    
  5.    $replace = array( '|', '', '/', '<', '>', ':', '*', '?', '"' );
  6.    $replace_to = '_';
  7.    $folder_name = str_replace($replace, $replace_to, $folder_name);
  8.    
  9.    $filelist = glob('../stats/*');
  10.    
  11.    
  12.    foreach ($filelist as $fl) {
  13.        echo basename($f)."&#092;n";
  14.    }
  15.    
  16.    
  17.    $filelist_count = count($filelist);
  18.    for($i=0;$i<$filelist_count;$i++) {
  19.        if ( $entry == basename($filelist[$i]))
  20.            die('Folder o takiej nazwie istnieje');
  21.    }
  22.    
  23.    @mkdir ("../stats/$folder_name", 0700) or die('Folder nie został utworzony');
  24.    echo 'Utworzono folder o nazwie $folder_name';
  25.  
  26. ?>
Przemek07
Opierając się o rozwiązanie kolegi wyżej udało mi się poprawić mój skrypt i wszystko działa a wygląda tak:

  1. <?php
  2. <html>
  3. <head><title>adserver</title></head>";
  4. $folder_name=ereg_replace('[|]','_',$folder_name);
  5. $folder_name=ereg_replace('[]','_',$folder_name);
  6. $folder_name=ereg_replace('[/]','_',$folder_name);
  7. $folder_name=ereg_replace('[<]','_',$folder_name);
  8. $folder_name=ereg_replace('[>]','_',$folder_name);
  9. $folder_name=ereg_replace('[:]','_',$folder_name);
  10. $folder_name=ereg_replace('[*]','_',$folder_name);
  11. $folder_name=ereg_replace('[?]','_',$folder_name);
  12. $folder_name=ereg_replace('["]','_',$folder_name);
  13.  
  14. if ($folder_name > empty($folder_name)){
  15. @(mkdir ("../stats/$folder_name", 0700)) or die("Błąd przy kopiowaniu");echo"Utworzono folder o nazwie $folder_name";}
  16.  
  17. else {
  18. echo "Folder nie został utworzony";}
  19.  
  20. echo "</html>";
  21. ?>


Dzięki Panowie smile.gif
gox
cool, tylko ze to:

  1. <?php
  2. $folder_name=ereg_replace('[|]','_',$folder_name);
  3. $folder_name=ereg_replace('[]','_',$folder_name);
  4. $folder_name=ereg_replace('[/]','_',$folder_name);
  5. $folder_name=ereg_replace('[<]','_',$folder_name);
  6. $folder_name=ereg_replace('[>]','_',$folder_name);
  7. $folder_name=ereg_replace('[:]','_',$folder_name);
  8. $folder_name=ereg_replace('[*]','_',$folder_name);
  9. $folder_name=ereg_replace('[?]','_',$folder_name);
  10. $folder_name=ereg_replace('["]','_',$folder_name);
  11. ?>


mozna zastapic tym:

  1. <?php
  2. $replace = array( '|', '', '/', '<', '>', ':', '*', '?', '"' );
  3.   $replace_to = '_';
  4.   $folder_name = str_replace($replace, $replace_to, $folder_name);
  5. ?>
Przemek07
Okej to sobie to jeszcze poprawię, dzięki snitch.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.