Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zakładanie katalogu
Forum PHP.pl > Forum > Przedszkole
krzysik
Witam wszystkich i proszę o pomoc.
Mam za zadanie pobranie nazwy katalogu z pliku (baza.txt) i założenie go na serwerze.
zawartośc pliku baza.txt:

katalog1
katalog2
katalog3
katalog4


napisałem 3 linijki kodu:
  1. <?php
  2. $tablica = file('baza.txt');
  3. $zmienna = ($tablica[0]);
  4. mkdir ($zmienna);
  5. ?>


problem:
- Dane zostaja pobrane, katalog [katalog1] zostaje utworzony, jednak wywala błędy gdy chcę wykonac jakąś operacje na tym katalogu (wejśc do niego, skasować, skopiować) zwraca błąd " nie ma takiego pliku lub katalogu".

problem nie występuje gdy odwołuję się bezpośrednio do tablicy nie wczytywanej z pliku.
  1. <?php
  2. $tablica = Array('katalog1', 'katalog2', 'katalog3', 'katalog4');
  3. $zmienna = ($tablica[0]);
  4. mkdir ($zmienna);
  5. ?>


Proszę o pomoc.
Villentre
Chmody musisz ustawić smile.gif

http://pl.php.net/chmod
artur_dziocha
Cytat(Villentre @ 21.07.2009, 20:18:48 ) *
Chmody musisz ustawić smile.gif

http://pl.php.net/chmod

ale przy drugim sposobie działa wszystko więc to nie chmody

wyświetl sobie co zwraca Ci pierwsza tablica
  1. <?php
  2. $tablica = file('baza.txt');
  3. var_dump($tablica);
  4. ?>
krzysik
Cytat(artur_dziocha @ 21.07.2009, 20:22:30 ) *
wyświetl sobie co zwraca Ci pierwsza tablica


oto wynik
array(4) { [0]=> string(10) "katalog1 " [1]=> string(10) "katalog2 " [2]=> string(10) "katalog3 " [3]=> string(8) "katalog4" }
artur_dziocha
a co to za spacje po nazwach??
  1. <?php
  2. 0]=> string(10) "katalog1 "
  3. ?>

Usuń spacje i wszystko powinno byc OK
krzysik
Po części masz rację, zadziałao przy jednym elemencie tablicy.
Po wpisaniu do pliku tekstowego pozostałych elementów zwraca:
array(3) { [0]=> string(10) "katalog1 " [1]=> string(10) "katalog2 " [2]=> string(10) "katalog3 " }

sytuacja identyczna jak poprzednio. Widzi jakies dodatkowe znaki, których w pliku tekstowym nie ma na 100%
Może jakis inny pomysł na pobranie nazw tych katalogów z pliku ? Jestem początkujący i nie bardzo wiem jak sobie z tym poradzić.

-----edit----
W sieci znalazłem oś na temat trim

po zastosowaniu w skrypcie:

  1. <?php
  2. $tablica = file('baza.txt');
  3. trim($tablica);
  4. var_dump($tablica);
  5. ?>


Niestety wynik identyczny :
array(3) { [0]=> string(10) "katalog1 " [1]=> string(10) "katalog2 " [2]=> string(10) "katalog3 " }
artur_dziocha
a jak masz to w pliku tekstowym zapisane??czym rozdzielone.
Pokaż część pliku

//EDIT
przeczytaj dokładnie co oznacza ten tekst
Strip whitespace (or other characters) from the beginning and end of a string
Więc na tablicy to nie zadziała.
Masz tam przykłady. Teraz pokombinuj
krzysik
Podmieniłem tablice na stringa ale jakoś nie chce go obcinać z białych znaków.

  1. <?php
  2. $tablica = file('miasta.txt');
  3. echo "$tablica[0] <br> ";
  4.  
  5. // z tablizy na string
  6. $kat1 = ($tablica[0]);
  7.  
  8. // obcinanie białych znaków
  9. trim($kat1);
  10.  
  11. // wyświetlanie typu zmiennej
  12. echo gettype($kat1);
  13. echo " - typ zmiennej kat1 <br>";
  14.  
  15. var_dump($tablica);
  16. echo "<br>";
  17. var_dump($kat1);
  18. ?>


a oto jaki daje wynik:

katalog1
string - typ zmiennej kat1
array(3) { [0]=> string(10) "katalog1 " [1]=> string(10) "katalog2 " [2]=> string(10) "katalog3 " }
string(10) "katalog1 "


JAk widać ciągle zostają w ($kat1) jakiś śmieci sad.gif
erix
  1. <?php
  2. trim($tablica);
  3. ?>

To nie na całą tablicę, a jedynie na jeden rekord... dry.gif
krzysik
Cytat(erix @ 21.07.2009, 21:26:04 ) *
  1. <?php
  2. trim($tablica);
  3. ?>

To nie na całą tablicę, a jedynie na jeden rekord... dry.gif


var_dump cały czas zwraca zmienne bez usuniętych "białych znaków" aaevil.gif
artur_dziocha
na php.net w przykładach masz działanie na tablicy.
Trochę samodzielności
Przykład 2 Trimming array values with trim()
  1. <?php
  2. function trim_value(&$value)
  3. {
  4.    $value = trim($value);
  5. }
  6.  
  7. $fruit = array('apple','banana ', ' cranberry ');
  8. var_dump($fruit);
  9.  
  10. array_walk($fruit, 'trim_value');
  11. var_dump($fruit);
  12. ?>

lub przez jakąkolwiek iterację tablicy

Pozdrawiam
krzysik
Problem dzięki Waszemu naprowadzaniu został rozwiązany exclamation.gif!!

mianowicie:
samo wykonanie trim na tablicy lub jej elemencie:
trim($tablica)
Nie powoduje zapisania tablicy bądź jej elementu bez białych znaków.

Wystarczyło poprostu przypisać inną zmienną do "wybielonego elementu tablicy":
$kat1 = trim($tablica[0])

I bez problemów moge juz zakładac katalog mkdir ($kat1).

Spokojnej nocy.
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.