Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]includowanie parę plików o wspólnej nazwie do jednego
Forum PHP.pl > Forum > Przedszkole
1slimak
mam jak przystało na przedszkolaka dla mnie nierozwiązywalny problem, a dla Was pewnie podstawowa rzecz

tym razem może opiszę o co mi chodzi na konkretach php.gif

mam parę plików powiedzmy cos2ania.php; haha2ania.php; bartek26.php; polonez_bartek26.php .......... itp.

staruję jakąś stroną na, której powiedzmy mam odnośniki pliki bartka; pliki ani, ....... po kliknięciu na odnośnik "pliki bartka" wędruję na stronę np. bartek.php gdzie są includowane wszystkie pliki gdzie w nazwie występuje ciąg znaków bartek26, czyli mają one różne nazwy gdzie przed ciągiem bartek26 występują różne znaki oraz możliwe, że i za tym ciągiem też występują różne znaki, może to być różna ilość znaków


da się coś takiego zrobićquestionmark.gif

proszę o pomoc co_jest.gif
mat-bi
Hmm... Chodzi ci o wczytanie wszystkich plików w danym folderze, których nazwy spełniają dane kryteria?

Jeżeli tak, poczytaj o I/O i wyrażeniach regularnych (pętla też)
Grzyw
Nie potrzebujesz nawet regularnych do tego.
1) Wczytaj pliki z folderu
2) Zrób pętle po plikach, w której
3) sprawdź, czy w nazwie pliku jest login usera, zamiast regularnych wystarczy czy strstr chociażby.
1slimak
Cytat
wczytanie wszystkich plików w danym folderze, których nazwy spełniają dane kryteria?


chodzi mi o to i to rozumię oneeyedsmiley02.png

Cytat
Jeżeli tak, poczytaj o I/O i wyrażeniach regularnych (pętla też)
- tego nie bardzo co_jest.gif

a nie mógłbyś napisać jakiegoś prostego skrypta?? lub miejsca gdzie taki można znaleźć?


litości, właśnie dlatego piszę w przedszkolu sciana.gif

a no i chyba ważna informacja, nie chodzi o to, żeby to było generalnie w jakiś bazach danych - coś prostego, skutecznego, co nie można spaprać baaasmiley.gif
bastard13
  1. $directory = 'folder/z/plikami/';
  2. $searchFor ='bartek';
  3. foreach(scandir($directory) as $file)
  4. {
  5. if(is_int(strpos($file, $searchFor)) && is_file($file))
  6. include_once($file);
  7. }
1slimak
zrobiłem plik kwiecien.php

  1. <?php
  2. $directory = 'kw/';
  3. $searchFor ='201104';
  4. foreach(scandir($directory) as $file)
  5. {
  6. if(is_int(strpos($file, $searchFor)) && is_file($file))
  7. include_once($file);
  8. }
  9. ?>


utworzyłem parę plików gdzie występował ciąg 201104

wgrałem je do katalogu kw który jest w tym katalogu co plik kwiecien.php

i dostałem komunikat Fatal error: Call to undefined function: scandir() in ......../wydarzenia/kwiecien.php on line 4


sciana.gif
bastard13
A którą masz wersję php'a? scandir() jest dostępna od wersji 5.0
1slimak
twierdzą że na serwerze są php od 4 do 6
bastard13
No to ty jesteś w tej pechowej liczbie posiadaczy php 4, więc albo zmienią ci na piątkę, albo tu masz 'implementacje' scandir() dla 4
http://forums.powweb.com/showthread.php?t=56604
1slimak
  1. <?php
  2. $dir = "/tmp";
  3. $dh = opendir($dir);
  4. while (false !== ($filename = readdir($dh))) {
  5. $files[] = $filename;
  6. }
  7.  
  8. sort($files);
  9. print_r($files);
  10. rsort($files);
  11. print_r($files);
  12. ?>


a gdzie tutaj trzeba wpisać poszukiwany ciąg znaków

bo katalog to chyba w $dir="kw/" - czy tak?
bastard13
Cytat
tu masz 'implementacje' scandir()

to oznacza, że kod robi to, co funkcja scandir().
Teraz musisz jedynie połączyć to, co masz, z tym co napisałem wcześniej.
1slimak
spróbowałem to skleić ale pominę milczeniem ile błedów mi wypisała przeglądarka wstydnis.gif

czy mógłbyś to skleić, żeby to miało sens??

proszę biggrin.gif
bastard13
Nie, ale jak pokażesz co napisałeś i wkleisz błędy, które zwróciła ci przeglądarka, to chętnie pomogę.
1slimak
tylko się proszę nie smiać thumbsdownsmileyanim.gif

  1. <?php
  2. $directory = 'kw/';
  3. $searchFor ='201104';
  4. $dir = "/tmp";
  5. $dh = opendir($dir);
  6. while (false !== ($filename = readdir($dh))) {
  7. $files[] = $filename;
  8. }
  9.  
  10. sort($files);
  11. print_r($files);
  12. rsort($files);
  13. print_r($files);
  14. foreach(scandir($directory) as $file)
  15. {
  16. if(is_int(strpos($file, $searchFor)) && is_file($file))
  17. include_once($file);
  18. }
  19. ?>


no i błędy (mało wierszy jest bez nich businesssmiley.png

Warning: opendir(/tmp) [function.opendir]: failed to open dir: Permission denied in /homez.323/................/wydarzenia/kwiecien.php on line 5

Warning: readdir(): supplied argument is not a valid Directory resource in /homez.323/................/wydarzenia/kwiecien.php on line 6

Warning: sort() expects parameter 1 to be array, null given in /homez.323/................/wydarzenia/kwiecien.php on line 10

Warning: rsort() expects parameter 1 to be array, null given in /homez.323/................/wydarzenia/kwiecien.php on line 12

Fatal error: Call to undefined function: scandir() in /homez.323/................//wydarzenia/kwiecien.php on line 14



sciana.gif dostal.gif
bastard13
translate.google.pl
W błędach masz wszystko napisane, wystarczy, że przeczytasz ze zrozumieniem.
Fatal error ci wyskakuje, ponieważ nadal masz wywołanie scandir().
1slimak
pewnie jakbym się na tym znał to bym przeczytał ze zrozumieniem arrowheadsmiley.png

na szczęście wymusiłem php5 i ten Twój skrypt działa teraz bez problemu dzięki yahoo.gif

Panowie proszę o szybką pomoc wczoraj ten skrypt działał a dzisiaj kicha, biały ekran nawet nie wyskakuje żaden błąd

  1. <?php
  2. $directory = 'kartki/';
  3. $searchFor ='201104';
  4. foreach(scandir($directory) as $file)
  5. {
  6. if(is_int(strpos($file, $searchFor)) && is_file($file))
  7. include_once($file);
  8. }
  9. ?>


jeżeli ten plik umieszczę w katalogu tym samym co szukane pliki to działa wtedy 'kartki/' zamieniam na '.'

czy coś poknociłem z katalogiem (kartki) czy jakiś inny bubel??
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.