| Autor | Zpráva | ||
|---|---|---|---|
| Fergi Profil |
#1 · Zasláno: 19. 12. 2009, 22:15:39
Ahojte,
potřeboval bych trošku helpnout s následující věcí, a sice potřebuji aby se mi automaticky naincludoval soubor z vloženého adresáře bez toho aniž bych něco někde přepisoval ručně, pro lepší pochopení uvedu příklad: Mám složku (pojmenuji ji třeba basedir) do které vkladám další složky (ty se budou jmenovat každá jinak - např: články a komentáře....), a v těch bude soubor neco.ini a já potřebuji aby se mi soubor neco.ini automaticky naincludoval do jednoho scriptu a to ze všech složek které jsou ve složce basedir. Děkuji za každou odpověd Fergi |
||
| Radek9 Profil |
#2 · Zasláno: 19. 12. 2009, 22:21:05 · Upravil/a: Radek9
Fergi:
$opendir = opendir("basedir");
while($dir = readdir($opendir)){
if(stristr($dir, ".")==false and file_exists($dir."/neco.ini")){
include $dir."/neco.ini";
}
} |
||
| Fergi Profil |
#3 · Zasláno: 19. 12. 2009, 22:24:51 · Upravil/a: Fergi
ooo děkuji, hned valím zkusit :)
edit: tak zkousim , a nepise mi to zadnou chybu ale ani nevypisuje obsah neco.ini... proste jen bila obrazovka... |
||
| Radek9 Profil |
#4 · Zasláno: 19. 12. 2009, 22:42:09 · Upravil/a: Radek9
Fergi:
Tak si to zkuste upravovat... Např.: $opendir = opendir("basedir");
while($dir = readdir($opendir)){
if(stristr($dir, ".")==false and file_exists($dir."/neco.ini")){
include $dir."/neco.ini";
echo $dir."-if1";
}
echo $dir."-mimo";
if(file_exists($dir."/neco.ini")){
echo $dir."-if2";
}
}atd. a sledujte co to vypisuje... |
||
| Fergi Profil |
#5 · Zasláno: 19. 12. 2009, 22:44:36 · Upravil/a: Fergi
neboj :) zkousim zkousim ;) , moc dekuji za pomoc :)
edit: tak jsem zjistil ze nefunguje to kde je ta podminka ( if(stristr($dir, ".")==false and file_exists osobne bych rekl ze to nemuze nacist neco.ini protoze to -if2 se nezapise.... |
||
| Radek9 Profil |
#6 · Zasláno: 19. 12. 2009, 22:50:10
Fergi:
Tak si ještě vypište to stristr a zkuste bez té podmínky naincludovat ten soubor. |
||
| Fergi Profil |
#7 · Zasláno: 19. 12. 2009, 22:54:05
kdyz to tam udelam takhle
<?php
$opendir = opendir("basedir");
while($dir = readdir($opendir)){
if(stristr($dir, ".")==false){
echo $dir;
}
}tak to vypise adresare, problem je ve funkci file_exists ted jsem na to dosel :D ps: muzete mi tykat to ja bych vam mel spis s myma zkusenostma vykat :P |
||
| Alphard Profil |
#8 · Zasláno: 19. 12. 2009, 23:00:28
Musíš dodat dodat celou cestu, název souboru nestačí.
$directory = "basedir/";
$opendir = opendir($directory);
while($dir = readdir($opendir)){
if(stristr($dir, ".")==false and file_exists($directory.$dir."/neco.ini")){
include $directory.$dir."/neco.ini";
echo $dir."-if1";
} |
||
| Fergi Profil |
#9 · Zasláno: 19. 12. 2009, 23:00:33 · Upravil/a: Fergi
uz vim asi kde je chyba ono to overuje jestli soubor existuje ve slozce/neco.ini, ale melo by to overovat v basedir/slozka/neco.ini, tady je problem :)
edit: pozde ... ;) dekuji oboum moc jste mi pomohli ;) |
||
| Radek9 Profil |
#10 · Zasláno: 19. 12. 2009, 23:33:20 · Upravil/a: Radek9
Alphard, Fergi:
No vidíte, na to jsem úplně zapoměl. Děkuji za opravu. |
||
| Fergi Profil |
#11 · Zasláno: 20. 12. 2009, 23:18:39 · Upravil/a: Fergi
ahoj,
mam tu jeste jeden problem :( <?php
function loadplugins()
{
$basedir = "basedir/";
$opendir = opendir($basedir);
while($dir = readdir($opendir))
{
if(stristr($dir, ".")==false and file_exists($basedir.$dir."/neco.ini"))
{
return $basedir.$dir."/neco.ini";
}
}
}
var_dump(loadplugins());toto je funkce kterou mam v jine tride, ale je to upraveny pro jednoduchost, a tady me jde zase o to ze mi to vypise pouze jeden soubor takze i kdyz mam 2 a vice slozek tak to vypise pouze jednu :( takze místo string(23) "basedir/slozka/neco.ini" string(24) "basedir/slozka2/neco.ini" string(24) "basedir/slozka3/neco.ini" to vypise pouze string(23) "basedir/slozka/neco.ini" nevi nekdo prosim proc? dekuji :) ps: potrebuji to v tomto formatu, protoze to dale parsuji |
||
| Majkl578 Profil |
#12 · Zasláno: 21. 12. 2009, 03:00:51 · Upravil/a: Majkl578
Fergi:
„nevi nekdo prosim proc?“ Ví. Protože tam je return při prvním nálezu. Viz. řádek 10. Nestačilo by toto? var_dump(glob('basedir/*/neco.ini'));Řešení přes while v kombinaci s readdir a file_exists apod. mi přijdou jako kanón na vrabce. |
||
| Fergi Profil |
#13 · Zasláno: 21. 12. 2009, 09:34:49
Majkl578:
děkuji, to je velmi elegantní řešení |
||
| imploder Profil |
#14 · Zasláno: 21. 12. 2009, 11:25:07
Jestli je soubor adresář se dá zjistit funkcí is_dir. (místo toho stristr(...); i adresář může mít ve jméně tečku)
|
||
|
Časová prodleva: 16 let
|
|||
0