Jak vytvořim novou proměnnou z názvu souboru? – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak vytvořim novou proměnnou z názvu souboru? – PHP – Fórum – Programujte.comJak vytvořim novou proměnnou z názvu souboru? – PHP – Fórum – Programujte.com

 

RolandN0
Newbie
28. 6. 2010   #1
-
0
-

Zdravim, lze vytvořit název nové proměnné z obsahu jiné proměnné?

Mám v adresáří soubory jejichž názvy jsou číselné hodnoty. A potřebuju načíst tyto soubory jako proměnné se stejným názvem (jako je název soubor).

názvy souboru:
11.dat
12.dat
13.dat
.... atd.

načíst je a vytvořit proměnné:
$id11
$id12
$id13
..... atd.

pokud si je vypíšu všechyn zvlášť, tak je to pakárna (hlavně když soubory v adresáři příbývají): $id11 = File ("11.dat");

potřebuju dát načítáni do cyklu a to si nevim rady... :-(

Nahlásit jako SPAM
IP: 89.29.11.–
z_moravec
~ Redaktor
+3
Posthunter
Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
KIIV
~ Moderátor
+43
God of flame
28. 6. 2010   #3
-
0
-

popravde bych to videl spis na pole, nez na takovou prasarnu :)

proc ti nevyhovuje $id[11] = ... ; $id[12] = ... ?

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Bryant
~ Moderátor
0
Stálý člen
28. 6. 2010   #4
-
0
-

Já bych do cyklu použil funkci file_exists(), která by zjišťovala zda je daný soubor v adresáři, pokud ano vytvořila by se v cyklu proměná, pokud máš v názvech souborů čísla tak by to mohlo jít. ;)

Nahlásit jako SPAM
IP: 94.138.99.–
„Bez činu zůstává i nejkrásnější myšlenka bezcennou.“
— Móhandás Karamčand Gándhí
RolandN0
Newbie
28. 6. 2010   #5
-
0
-
Nahlásit jako SPAM
IP: 89.29.11.–
RolandN0
Newbie
28. 6. 2010   #6
-
0
-

KIIV napsal:
popravde bych to videl spis na pole, nez na takovou prasarnu :)

proc ti nevyhovuje $id[11] = ... ; $id[12] = ... ?



do pole už dávám obsah těch souborů (jen jsem to tu nechtěl tak rozepisovat).

Nahlásit jako SPAM
IP: 89.29.11.–
RolandN0
Newbie
28. 6. 2010   #7
-
0
-

Hmm, tak mi to s tou proměnnou proměnné nějak nejde :-(
A neexistuje něco jako vytvoření názvu z obsahu několika proměnných?
něco jako dejme tomu:
${id.$a} = "hallo";
echo $id11;

:-)

Nahlásit jako SPAM
IP: 89.29.11.–
Bryant
~ Moderátor
0
Stálý člen
28. 6. 2010   #8
-
0
-

RolandN napsal:
Hmm, tak mi to s tou proměnnou proměnné nějak nejde :-(
A neexistuje něco jako vytvoření názvu z obsahu několika proměnných?
něco jako dejme tomu:
${id.$a} = "hallo";
echo $id11;

:-)


Myslím že to nemusíš řešit, když výsledek načteš do pole ;)

Nahlásit jako SPAM
IP: 94.138.99.–
„Bez činu zůstává i nejkrásnější myšlenka bezcennou.“
— Móhandás Karamčand Gándhí
KIIV
~ Moderátor
+43
God of flame
28. 6. 2010   #9
-
0
-

To RolandN : ale stale si nevysvetlil na co proboha...
jinak $"id$a" by mohlo jit.. ci ${'id'.$a}
pak by mohlo jit $GLOBALS['id'.$a]

moznosti je spousta

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
zdenda
~ Anonymní uživatel
257 příspěvků
28. 6. 2010   #10
-
0
-

Hele, a když si takhle hezky ty proměnné vytvoříš, tak k nim budeš stejně pitomě přistupovat? Souhlasím s tím, že bys měl použít pole.
A ten tvůj pokus jde, akorát to musí trochu dávat smysl ;)

$a = 11; ${'id'.$a} = 'halo'; echo $id11;

Nahlásit jako SPAM
IP: 213.211.51.–
RolandN0
Newbie
28. 6. 2010   #11
-
0
-

Super funguje tohle: ${'id'.$a}

Potřebuju to na stránku (bez použití databáze) která načte soubory (každý soubor představuje určitý produkt) ve kterých je odřádkována nějaká hodnota (název produktu, popis, atd...). Soubory se načtou a vytvoří se z nich proměnné s číslem daného produktu, kde pak v každém poli jsou rozdělene informace, které jsou na stránce podle potřeby zobrazeny.

celý zápis mám takhle (ty cykly jsou asi zvěrstvo, ale funguje to :-) :

for($i=0; $i<999; $i++) {
if (file_exists("files/$i.id")) {
$data = File ("files/$i.id");
for ($x = 0; $x < Count ($data); $x++) ${'id'.$i}[$x] = $data[$x];
}
}

Nahlásit jako SPAM
IP: 89.29.11.–
z_moravec
~ Redaktor
+3
Posthunter
28. 6. 2010   #12
-
0
-

To RolandN : Trochu OT, ale je nějaký důvod proč nemůžeš použít databázi? Pokud do těch souborů i zapisuješ, tak si celkem koleduješ o problém.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Bryant
~ Moderátor
0
Stálý člen
28. 6. 2010   #13
-
0
-

To RolandN :
Tak to mi teda přijde jako docela hloupé řešení, myslím že databáze je pravě pro tyhle věci ;)

Nahlásit jako SPAM
IP: 94.138.99.–
„Bez činu zůstává i nejkrásnější myšlenka bezcennou.“
— Móhandás Karamčand Gándhí
KIIV
~ Moderátor
+43
God of flame
28. 6. 2010   #14
-
0
-

a stejne sem jeste necetl DUVOD proc nepouzit pole!!
to ze "uz pole pouzivas na soubory" neni duvod.. existujou vicerozmerne pole

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
RolandN0
Newbie
28. 6. 2010   #15
-
0
-

Soubory se aktualizují přes FTP.

Bez databáze kvůli vyšší ceně webhostingu.

Nahlásit jako SPAM
IP: 89.29.11.–
KIIV
~ Moderátor
+43
God of flame
28. 6. 2010   #16
-
0
-

To RolandN : a to se vyplati.. usetrit dvacku a utratit desetitisice za udrzbu

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Bryant
~ Moderátor
0
Stálý člen
28. 6. 2010   #17
-
0
-

To RolandN :
Hosting s databází dnes seženeš i v ČR už i od 20kč/měsíc, navíc tu jsou free hostingy jako ic.cz, webzdarma.cz, atd.. ;) .. smim vědět co je to za hosting?

Nahlásit jako SPAM
IP: 94.138.99.–
„Bez činu zůstává i nejkrásnější myšlenka bezcennou.“
— Móhandás Karamčand Gándhí
RolandN0
Newbie
28. 6. 2010   #18
-
0
-

KIIV napsal:
a stejne sem jeste necetl DUVOD proc nepouzit pole!!
to ze "uz pole pouzivas na soubory" neni duvod.. existujou vicerozmerne pole



Hmm, tak to mě nějak vůbec nedošlo, nebo jsem si nějak nevzpoměl že nějaké jsou :smile11:

Nahlásit jako SPAM
IP: 89.29.11.–
RolandN0
Newbie
28. 6. 2010   #19
-
0
-

free hosting využívat nechci. Mám to na Activ24.
Údržba, administrace, provoz je jen v mé režii, můžu nadávat jen sám sobě.

Nahlásit jako SPAM
IP: 89.29.11.–
CZechBoY+4
Věrný člen
28. 6. 2010   #20
-
0
-

Active24 :D
teď jsem na tomhle hostingu taky objevil nějaký web a je to humus teda fakt

Nahlásit jako SPAM
IP: 82.113.53.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
28. 6. 2010   #21
-
0
-

ty cykly jsou asi zvěrstvo, ale funguje to :-)
for($i=0; $i<999; $i++) {
if (file_exists("files/$i.id")) {
$data = File ("files/$i.id");
for ($x = 0; $x < Count ($data); $x++) ${'id'.$i}[$x] = $data[$x];
}
}


foreach (glob("files/*.id") as $file)

${'id'.(int)basename($file)} = file($file);
?

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 66 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý