Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Tworzenie katalogu, Tworzenie katalogu tak aby nazwy katalogów się nie powtarzały
Przemek07
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.10.2008
Skąd: Mysłowice

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


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ż... (IMG:http://forum.php.pl/style_emoticons/default/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. ?>


Ten post edytował Przemek07 23.10.2008, 21:01:38
Go to the top of the page
+Quote Post
mecenas
post
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 5
Dołączył: 23.09.2008
Skąd: Chełmno/Toruń

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


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?
Go to the top of the page
+Quote Post
Przemek07
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.10.2008
Skąd: Mysłowice

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


Chciałbym pominąć tworzenie nowego z wyświetlaniem oczywiście informacji o tym iż taki katalog już istnieje i należy wybrać inną nazwę.
Go to the top of the page
+Quote Post
Maxik
post
Post #4





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


is_dir" title="Zobacz w manualu PHP" target="_manual Ci pomoże.
Go to the top of the page
+Quote Post
Przemek07
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.10.2008
Skąd: Mysłowice

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


Szczerze, nie bardzo wiem jak to zastosować do mojego skryptu, ale będę eksperymentował aż wyjdzie - tak chyba się najlepiej nauczę. Dzięki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Przemek07 23.10.2008, 21:32:04
Go to the top of the page
+Quote Post
-gox-
post
Post #6





Goście







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. ?>
Go to the top of the page
+Quote Post
Przemek07
post
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.10.2008
Skąd: Mysłowice

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


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-gox-
post
Post #8





Goście







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. ?>
Go to the top of the page
+Quote Post
Przemek07
post
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.10.2008
Skąd: Mysłowice

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


Okej to sobie to jeszcze poprawię, dzięki (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
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 - 16:10