Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dzielenie pliku tekstowego na stringi, A strinów na zmienne
HgReed
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 13.11.2011

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


Witam.
Otóż chcąc udostępnić kilku zaprzyjaźnionym osobom miejsce na serwerze napisałem skrypt który pliki "ładuje" na serwer i zapisuje ich nazwę, folder zapisania i opis. Tu rodzi się pytanie - jak rozbić GIGANTYCZNY ciąg znaków na stringi pojedyńcych plików, a potem wyciągnięcie z nich nazwy pliku wraz z lokalizacją (by móc z tego zrobić linka do downloadu) i jego opis.

Przykładowy string logu (2 pliki):
plik.jpg||upload/test||Przykładowy plik|___|plik231.doc||upload/innyuserodziwnejnazwie||taki inny plik|___|

Póki co, naskrobałem tyle :

  1. <?php
  2. $logFileLineBreak = "|___|";
  3. $logFile = "upload/uploadLog.txt";
  4. explode($logFileLineBreak,$logFile);
  5. list($userFile,$userFileDir,$userFileDescription) = explode("||", $logFileLineBreak);
  6. ?>


Powiem tak... To nie działa (IMG:style_emoticons/default/sad.gif) Wie ktoś jak to skończyć? Czy w ogóle dobrze się za to biorę?

Pozdro
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




dla explode jako drugi parametr zapodaje się tekst, który chcemy explodować. Ty tego nie robisz.

Przenosze na przedszkole
Go to the top of the page
+Quote Post
krowal
post
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


  1. foreach(explode('|___|',$logFile) as $f){
  2. list($userFile,$userFileDir,$userFileDescription) = explode('||', $f)
  3. }
Go to the top of the page
+Quote Post
HgReed
post
Post #4





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 13.11.2011

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


Krowal - dzięki, ale nie działa (IMG:style_emoticons/default/sad.gif) I do tego kasuje mi loga -.- Co robie źle?
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie działa bo krowal zarówno jak ty nie exploduje po ciągu, który ma być explodowany. Czemu nie czytasz wszystkich postów, tylko skupiasz się na tych gdzie jest kod?

$logFile nie jest ciągiem, który chcecie explodować. $logFile to jedynie ścieżka do pliku.
Go to the top of the page
+Quote Post
HgReed
post
Post #6





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 13.11.2011

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


Dobra. Zrozumiałem o co chodziło (chyba). Napisane mam tak :

  1. <?php
  2. $logFile = file_get_contents("upload/uploadLog.txt");
  3. $testingRaw = explode('|_|_|', $logFile);
  4. $testingCooked = explode('||', $testingRaw[0]);
  5. echo $testingCooked[0] . "<br />";
  6. echo $testingCooked[1] . "<br />";
  7. echo $testingCooked[2] . "<br />";
  8. ?>


I prawidłowo mi zwraca nazwe, dir i opis. Mam tylko pytanie - jak to "z'automatyzować" ? Żebym nie musiał do każdego pliku dodawać ostatnich czterech linijek kodu. To będzie foreach() ?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tak, foreach po $testingRaw
Go to the top of the page
+Quote Post
HgReed
post
Post #8





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 13.11.2011

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


Dobra - działa ! (IMG:style_emoticons/default/smile.gif) Po rozkminianiu foreach() i troche bawieniu się - wyszło :

  1. <?php
  2. $logFile = file_get_contents("upload/uploadLog.txt");
  3. $testingRaw = explode('|_|_|', $logFile);
  4. foreach($testingRaw as $testingHalfCooked)
  5. {
  6. $testingFullCooked = explode('||', $testingHalfCooked);
  7. echo $testingFullCooked[0];
  8. echo $testingFullCooked[1];
  9. echo $testingFullCooked[2];
  10. }
  11. ?>


Już sobie "okleiłem" to HTML'em i jest - mam pełnoprawny up i download (IMG:style_emoticons/default/smile.gif)
Dzięki nospor, dzięki.

Temat do zamknięcia.
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: 24.08.2025 - 10:34