Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zamiana stringu na tablice
Forum PHP.pl > Forum > PHP
neoangin
  1. <?php
  2.  
  3. $directory="images/";
  4. $dir=opendir($directory);
  5. $file_list="<UL>";
  6. while($file_name=readdir($dir))
  7. {
  8. if(($file_name!=".")&&($file_name!=".."))
  9. {
  10. $file_list.="<br />$file_name";
  11. }
  12. $a++;
  13. }
  14. $file_list.="</UL>";
  15. closedir($dir);
  16.  
  17.  
  18.  
  19. $patterns[0] = '/.gif/';
  20. $patterns[1] = '/.jpg/';
  21. $patterns[2] = '/.png/';
  22. $replacements[2] = '';
  23. $replacements[1] = '';
  24. $replacements[0] = '';
  25. echo preg_replace($patterns, $replacements, $file_list);
  26.  
  27. ///jak zamienic $file_name na tablice $file_name z rekordami kolejnych wierszy (czyli po <br/> nowy rekord)?
  28.  
  29. echo '<FORM METHOD="POST">Dodawanie aparatu:';
  30. echo '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj"><TABLE>';
  31.  echo '<tr><td>Nazwa obrazka:</td><td><select name="obrazek">';
  32.  
  33. for ( $i=0; $i < $a; $i++);
  34. {
  35. echo '<option>$file_list[$i]</option>';
  36. }
  37.  
  38. echo '</select>';
  39. echo '</tr><tr><td>Tytul:</td><td><INPUT ';
  40. echo 'TYPE="text" NAME="tytul"></td></tr><tr><td>Opis:</td>';
  41. echo '<td><INPUT TYPE="text" NAME="opis"></td><td>Wiekszy opis:</td><td><input type="text" name="opisw"></td></tr>';
  42. echo '</TABLE><INPUT TYPE="submit" VALUE="dodaj"></FORM>';
  43.  
  44.  
  45.  
  46. ?>

jak zamienic $fiile_name na tablice $file_name z rekordami kolejnych wierszy (czyli po <br/> nowy rekord)?
kossa
Jest już późno i mój umysł nie pracuje na najwyższych obrotach i być może nie do końca Ciebie zrozumiałem ale wydaje mi się że możesz użyć explode" title="Zobacz w manualu PHP" target="_manual

  1. <?php
  2. $tablica=explode("<br/>", $file_name);
  3.  
  4. echo $tablica[0]; //pierwszy rekord itd.
  5. ?>




Łukasz
wrzasq
wrzuciles jakis kod, ktory nie za bardzo wiadomo co robi. chcialem juz napisac to co napisal kossa, ale nie chcialem sie powtarzac, wiec przemyslalem ponownie twoj kod (a po tylu piwach o tej porze i w ogole w wakacji myslenie nie jest latwe) i zastanawiam sie, skoro chcesz to jako tablice, to po co doklejasz stringa? o.0

nadal nie jestem (chyba nikt z czytajacych nie jest) pewien, czy tego wlasnie chcesz, ale jesli dobrze cie rozumiem, to wystarczy cos takiego, zamiast twojej petli:

  1. <?php
  2. $file_list=array();
  3. while($file_name=readdir($dir))
  4. {
  5. if( $file_name!='.' && $file_name!='..')// po co ci te nawiasy przy warunkach? o.0
  6. {
  7. $file_list[] = $file_name;
  8. }
  9. }
  10. ?>


$a tez ci nie jest potrzebne w takim wypadku, bo masz count($file_list); (wywolujesz tylko raz, wiec nawet przy drastycznym nakladzie na wydajnosc, chyba nie bedzie to problem.

-edit-

w ramach dopisku: jakbys chcial powrotu do swojej formy, zawsze mozesz zastosowac kod odwrotny do tego, co napisal kossa (uzyj implode() zamiast explode()), a poza tym twoj kod generuje niepoprawny logicznie HTML jesli chodzi o ta liste plikow (po prostu obpisuje liste plikow zaczynajacych sie od nowej lini tagami <ul>, </ul>, co jest kompletnie bez sensu).
neoangin
juz wszystko paca, zupelnie mi sie zapomnialo oexplode" title="Zobacz w manualu PHP" target="_manual , oczyscilem troche ten kod i stwierdzilem ze nie ma sensu skracac plikow z koncowek .gif .jpg itp . dzieki za pomoc.
phpion
Tak na marginesie:
ten warunek:
  1. <?php
  2. if ($file_name != '.' && $file_name != '..')
  3. ?>

lepiej zapisać jako:
  1. <?php
  2. if ($file_name{0} != '.')
  3. ?>

Dlaczego? Spowoduje on ukrycie . (katalog bieżący), .. (katalog nadrzędny) czyli to co warunek wyjściowy, ale dodatkowo ukryje pliki rozpoczynające się od . czyli np. .htaccess czyli pliki ukryte.
pion
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.