Keresés

Részletes keresés

syxtus Creative Commons License 2002.12.10 0 0 908
Én egy picit átirtam:

function konyvtarak_idorendben($alapkonyvtar) {
if (!($dir=opendir($alapkonyvtar))) return FALSE;
$lista = array();
while (($filenev = readdir($dir)) !== FALSE) {
if ($filenev=='.' or $filenev=='..')
continue;
$stat=stat($filenev);
$lista[$filenev]=$stat['ctime'];
}
asort($lista,SORT_NUMERIC);
$lista2=array();
foreach($lista as $key => $val)
echo "$key\n
";
}

konyvtarak_idorendben('akciok');

Ami müködik is, de egy hibaüzenetet dob vissza:

Warning: stat failed for 2002-12-09-08-51 (errno=2 - No such file or directory) in /home/hardvercomp/public_html/test.php on line 8

Warning: stat failed for 2002-12-09-08-57 (errno=2 - No such file or directory) in /home/hardvercomp/public_html/test.php on line 8

Warning: stat failed for 2002-12-09-20-33 (errno=2 - No such file or directory) in /home/hardvercomp/public_html/test.php on line 8

Warning: stat failed for 2002-12-09-22-51 (errno=2 - No such file or directory) in /home/hardvercomp/public_html/test.php on line 8

Warning: stat failed for 2002-12-09-22-53 (errno=2 - No such file or directory) in /home/hardvercomp/public_html/test.php on line 8
2002-12-09-22-53
2002-12-09-22-51
2002-12-09-20-33
2002-12-09-08-57
2002-12-09-08-51

Lehet, hogy azzal van gond, hogy a könyvtárakat egy könyvtáron belül keresi, de hivatkozás kintre vonakozik ($filenev). Ezért inkább előbb chdir('akciok'); aztán konyvtarak_idorendben('.');

És igy hiba nélkül megy.

Előzmény: Bandi-T (906)
syxtus Creative Commons License 2002.12.10 0 0 907
Köszönöm szépen, remélem sikerül ezzel megcsinálnom
Előzmény: Bandi-T (906)
Bandi-T Creative Commons License 2002.12.09 0 0 906
Jaj nem, bocsánat, ez a tömbelemek neveiben adja vissza a listát. Javítok:

function konyvtarak_idorendben($alapkonyvtar) {

if (!($dir=opendir($alapkonyvtar))) return FALSE;
$lista = array();
while (($filenev = readdir($dir)) !== FALSE) {
if ($filenev=='.' or $filenev=='..')
continue;
$stat=stat($filenev);
$lista[$filenev]=$stat['ctime'];
}
asort($lista,SORT_NUMERIC);
$lista2=array();
foreach($lista as $key => $val)
$lista2[]=$key;
return $lista2;
}

És még azt is hozzáteszem, hogy ez a függvény nem végez ellenőrzést arra vonatkozóan sem, hogy a listába szedett elemek valóban könyvtárak-e.

Előzmény: Bandi-T (905)
Bandi-T Creative Commons License 2002.12.09 0 0 905

function konyvtarak_idorendben($alapkonyvtar) {
if (!($dir=opendir($alapkonyvtar))) return FALSE;
$lista = array();
while (($filenev = readdir($dir)) !== FALSE) {
if ($filenev=='.' or $filenev=='..')
continue;
$stat=stat($filenev);
$lista[$filenev]=$stat['ctime'];
}
asort($lista,SORT_NUMERIC);
return $lista;
}
Előzmény: syxtus (890)
Bandi-T Creative Commons License 2002.12.09 0 0 904
Hmm, ezek szerint nem teljesen értem a te megoldásod lényegét. Kérlek mondd el, te hogy gondoltad a dolgot.
Előzmény: Strong Bad (903)
Strong Bad Creative Commons License 2002.12.09 0 0 903
mi a problema ezzel a listaval?
Előzmény: Bandi-T (900)
Bandi-T Creative Commons License 2002.12.09 0 0 902
A kimenetre kiírt stringben levő szöveget a PHP nem értelmezi kódként; a stringben levő szöveget kódként akarsz értelmeztetni a PHP-vel, használd az eval() függvényt.
Előzmény: Johny Bravo (901)
Johny Bravo Creative Commons License 2002.12.09 0 0 901
Ha adatbázisból épitek föl egy oldalt (mintegy fórumszerűen csinálnék egy hiroldalt, ahová dátum- és szövegmezőből álló egységeket listáznék ki), akkor maga a szöveg (ami az adatbázisból kerül elő) tartalmazhat php-kódot? Tehát adatbázisban lehet eltárolni php-kódot is tartalmazó szöveget, azt visszaalakitja a php megjelenitéskor?
Bandi-T Creative Commons License 2002.12.09 0 0 900
És egy ilyen lista esetében?


[root@webway docs]# ls -lt
total 24
drwxr-s--- 2 root apache 4096 Dec 1 00:45 stats/
drwxrwsrwx 5 bandit kickboxworldcup 4096 Nov 26 00:32 2003/
-rw-r----- 1 root kickboxworldcup 306 Nov 14 16:20 index.html
drwxr-s--- 6 bandit kickboxworldcup 4096 Nov 9 16:41 2002/
drwxrwxr-x 9 root apache 4096 Feb 13 2002 wiki/
drwxr-s--- 3 bandit kickboxworldcup 4096 Feb 12 2002 preregister/
Előzmény: Strong Bad (899)
Strong Bad Creative Commons License 2002.12.09 0 0 899
hat ezen a listan tenyleg nem.
de ha "ls -lt"-vel listazod ki a konytaradat, es van esetleg space a file nevekben, akkor lathatod, hogy mas mar nem all a file nev utan, tehat amit kiemeltem a manualbol, hasznalhato.
Előzmény: Bandi-T (898)
Bandi-T Creative Commons License 2002.12.09 0 0 898
Hmm, nem látom ez hogyan segít egy ilyen formájú lista esetén (remélem jól átmegy a lista):

arch/    core     Documentation/  fs/                 hs_err_pid6126.log  init/  kernel/  MAINTAINERS  mm/   README          Rules.make  System.map

COPYING CREDITS drivers/ hs_err_pid5419.log include/ ipc/ lib/ Makefile net/ REPORTING-BUGS scripts/ vmlinux*
Előzmény: Strong Bad (897)
Strong Bad Creative Commons License 2002.12.09 0 0 897
array explode ( string separator, string string [, int limit])

Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the string separator. If limit is set, the returned array will contain a maximum of limit elements with the last element containing the rest of string.

Előzmény: Bandi-T (896)
Bandi-T Creative Commons License 2002.12.09 0 0 896
Hmm, a te megoldásod szerintem csődöt mond, ha a listában vannak szóközt tartalmazó fájlnevek.
Előzmény: Strong Bad (895)
Strong Bad Creative Commons License 2002.12.09 0 0 895
pontosan:
l. PHP manual: explode(), preg_split() ...
Előzmény: syxtus (892)
Bandi-T Creative Commons License 2002.12.09 0 0 894
bocsánat, a parancs helyesen: ls -t | less
Előzmény: Bandi-T (893)
Bandi-T Creative Commons License 2002.12.09 0 0 893
ez, ha teletype-ra (képernyőre) listázol, akkor tényleg szóközzel választja el, de ha nem, akkor minden fájlnevet új sorban ad vissza - próbáld ki: ls -lt | less
Előzmény: syxtus (892)
syxtus Creative Commons License 2002.12.09 0 0 892
Igen de ez space-el elválasztva adja vissza a file-neveket hogy tudom ezt szét szedni?
string müvelettel?

Rákeresek a spacekre és szétdarabolom?

Előzmény: Bandi-T (891)
Bandi-T Creative Commons License 2002.12.09 0 0 891
Hmm, az ls -sort -t parancs egyenértékű a ls -s -o -r -t paranccsal. Biztos, hogy ezt akartad?

Mit szólsz az egyszerű ls -t parancshoz?

Előzmény: syxtus (890)
syxtus Creative Commons License 2002.12.08 0 0 890
Az kellene igazából hogy idősorrendben visszakapjam egy könyvtárban lévő könyvtárak nevét, akár egy tömben is tárolva.
szeretném kiiratni egymás után egy könyvtárban lévő könyvtárakat

pl igy:

aaaa
bbbb
cccc
dddd

és mindegyikre akaraok egy linket csinálni, de az lenne a lényeg hogy sorban legyenek.

olyat találtam, hogy ls -sort -t
de ez egy egész sort ad vissza és ki kellene szednem belöle a könyvtárak nevét, amik persze változó hosszuak, tehát a oszlop szerinti kiszedés nem megy.

az opendir -es megoldás pedig össze-vissza adja vissza a könyvtárak nevét.

Nagyon kérlek titeket, hohy aki tud segiteni az tegye meg.

Köszönöm

Előzmény: syxtus (889)
syxtus Creative Commons License 2002.12.08 0 0 889
Igazából ahhoz kell, hogy egy adott könyvtárban lévő könyvtárokat időrendi sorrendben beolvassam.
Csak könyvtárok találhatóak benne.
tudsz valami olyan parancs kombinációt ami visszaadja a könyvtárak nevét időrendi sorrendbe?
pl ls | sort ? valami ilyesmi?
Előzmény: Bandi-T (888)
Bandi-T Creative Commons License 2002.12.08 0 0 888
Tudtommal nincs ilyen beállítása; gyűjtsd össze a könyvtárban levő fájlok adatait, és a dátum alapján rakd őket sorrendbe, majd utána írd ki.

Vagy, ha unix alatt vagy, az ls parancs megfelelő kapcsolójával sorba rakhatod őket dátum szerint.

Vagy mihez kell?

Előzmény: syxtus (887)
syxtus Creative Commons License 2002.12.08 0 0 887
Sziasztok!
Lenne egy kérdésem.

Hogyan lehet idősorrendbe kiiratni egy könyvtárban lévő file-okat?

$handle = opendir('.');
while ($file = readdir($handle)) {
echo $file;
}
closedir($handle);

de ez csak össze-vissza írja ki.

van ennek a readdir-nek egy ilyen beállítása?

Válaszotokat előre is köszönöm

Johny Bravo Creative Commons License 2002.12.08 0 0 886
Ok, én köszi a fáradtságot mindenkinek.
Előzmény: Bandi-T (885)
Bandi-T Creative Commons License 2002.12.07 0 0 885
Semmi gond!
Előzmény: Johny Bravo (884)
Johny Bravo Creative Commons License 2002.12.07 0 0 884
Mivel nem tanultam programozni, az sem volt kézenfekvő számomra, hogy logikai operátor néven keressem őket...
Előzmény: Bandi-T (879)
gye Creative Commons License 2002.12.07 0 0 883
Ha szabad tanácsolnom, ha még nincs meg, töltsd le ezt, és sok minden könnyebb lesz sztem... :)

üdvagyé:)

Johny Bravo Creative Commons License 2002.12.07 0 0 882
Nem, hobbiból csinálom a honlapomat, és a php-val alig pár hetes tapasztalatom van... :)
Előzmény: Bandi-T (879)
gye Creative Commons License 2002.12.07 0 0 881
+ ezenkívűl egy "or"-t biztos, hogy kipróbáltam volna mielőtt írok :))

dehát mindegy .)

gye Creative Commons License 2002.12.07 0 0 880
"ha bármelyik is igaz tartalommal bir"

szerinted ez nem "vagy"?

üdvagyé:)

Előzmény: Johny Bravo (876)
Bandi-T Creative Commons License 2002.12.07 0 0 879
Logikai operátorok

PS: Nyugtass meg, hogy neked nem fizetnek ezért! :)

Előzmény: Johny Bravo (877)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!