Autor | Zpráva | ||
---|---|---|---|
dragon124 Profil |
#1 · Zasláno: 5. 12. 2012, 19:47:36
Dobrý den,
Chtěl bych se zeptat, jak otevřít soubor, jehož jméno je v proměnné. Například budu mít toto $soubor $otevri=fopen($soubor."txt","r"); Prosím, poraďte, jak to mám vyřešit. |
||
jenikkozak Profil |
dragon124:
Přiřaď proměnné $soubor nějakou hodnotu. A nezapomeň na tečku mezi názvem a příponou souboru.
|
||
123456 Profil * |
#3 · Zasláno: 5. 12. 2012, 21:02:38
$soubor $otevri=fopen($soubor."txt","r"); $soubor = "example"; $otevri=fopen("example"."txt","r"); $otevri teda otvorí "exampletxt" (bez bodky pred txt) $soubor = "example."; $otevri=fopen("example."."txt","r"); $otevri teda otvorí "example.txt" (s bodkou pred txt) |
||
user243 Profil |
#4 · Zasláno: 5. 12. 2012, 21:19:27
nešlo by napsat ty poznámky jako poznámky?
|
||
dragon124 Profil |
#5 · Zasláno: 6. 12. 2012, 07:07:23
Už alespoň vím v čem je problém. Já to mám udělané jako funkci a tudíž musím dát vztup.
$promenna="ahoj"; function otevri(&ahoj){ $open = fopen($promenna.".txt","r"); } otevri($ahoj) Prosím, poraďte co s tím... |
||
user243 Profil |
#6 · Zasláno: 6. 12. 2012, 08:28:28
celá ta funkce mi přijde divná/nedodělaná;
není tam, že by jsi nějaký řádek četl, vypsal ho, vrátil pomocí return, natož ten otevřený soubor zase zavřel; mícháš lokální a globální proměnné, některé si dokonce cucáš z prstu, řekni mi, jak má php vědět, co si představuješ pod dragon124: „otevri($ahoj)“ + na konci chybí středník; „soubor .txt“ možná je jen překlep při opisování, ale mezi jménem souboru a příponou je jasně vidět mezera; |
||
Giga Profil |
dragon124:
> $promenna="ahoj"; > function otevri(&ahoj){ > $open = fopen($promenna.".txt","r"); > } > otevri($ahoj) takže čo sa tu deje: > $promenna="ahoj"; > function otevri(&ahoj){ deklarujes funkciu otevri s parametrom $ahoj > $open = fopen($promenna.".txt","r"); > } Unkočuješ funkciu > otevri($ahoj) to nemôže fungovať |
||
peta Profil |
$promenna="ahoj"; // uloz text 'ahoj' do promenne $promenna function otevri(&ahoj){ // definuj funkci 'otevri', ktere je predavana konstanta 'ahoj' bez duplikovani hodnoty $open = fopen($promenna.".txt","r"); //otevri soubor do promenne $open, nazev souboru je $promenna.".txt", $promenna je undefined, takze konecny nazev souboru je ".txt" } otevri($ahoj) // spust funkci otevri a predej ji obsah promenne $ahoj, ale $ahoj nemas definovan, takze funkci predavas 'undefined'. A navic ti tam schazi strednik Otazky: Proc v definici funkce mas & ? Ja bych tam ocekaval $. Proc mas ve funkci $promenna, kdyz ji nemas pripojenou pres global? Ja bych tam ocekaval $ahoj. Proc prirazujes otevreni souboru do promene $open, kdyz ji nikde dal nepouzivas? Proc na poslednim radku volas funkci a predavas ji promennou $ahoj, kdyz takova promenna v globalni urovni neexistuje? ja bych tam ocekaval $promenna. Proc delas na otevirani souboru funkci? Ceho chces docilit? Kdyz naplnis $open a $open nevytahnes z funkce, tak se tato promenna ztrati a vysledkem te funkce nic nebude. Kde mas fclose? Proc si nenajdes priklady v dokumentaci na fopen (mozna lepe fread nebo fwrite) a neokopirujes nejaky z nich? Nehledas spis funkci file_get_contents()? Takze spravne by to melo byt asi takto: $AAA = "ahoj"; function otevri($bbb){ $open = fopen($bbb.".txt","r"); fclose($open); } otevri($AAA); fopen - pripoj z disku soubor do php objektu soubor fread - nacti data z objektu soubor fwrite - zapis data do objektu soubor fclose - odpoj soubor od php objektu soubor Fopen tedy umozni php pracovat se souborem, ale zadna data jeste nenacte. Otevreni ve wordu znamena, ze se pripoji k souboru na disku a nacte data. ... Ja jen pro pochopeni, ze mi to treba chvili trvalo, nez jsem to pochopil a ocekaval jsem od fopen, ze mi to vrati hned data jako to dela file_get_contents. |
||
dragon124 Profil |
#9 · Zasláno: 6. 12. 2012, 14:40:41
Děkuji,
Omlouvám se, v otázce bylo zpousty chyb, nebyl to můj program, ale jen příklad pro nastínění problému. Děkuji... Peta - ano, všechny otázky jsou správně, pouze chyby, příštš budu dávat větší pozor... Problém je, že ale používám pole a mám problém k němu přistupovat přes GLOBALS //začátek kódu s deklarací pole ... function(){ echo $Globals["pole[a][b]"]; } |
||
jenikkozak Profil |
#10 · Zasláno: 6. 12. 2012, 14:43:22
dragon124:
„Jak to mám řešit?“ Nejpřehlednější řešení bude použití toho pole jako argumentu funkce. |
||
peta Profil |
dragon124:
To je zas jakysi neotestovany kus kod. Ma smysl na takovy dotaz reagovat, kdyz to budu museat zas dopsat? Proc nenapises konkretni problemovy kod, at se nemusime bavit o fikci? scifi a fantasy, treba kdyz chvili pockam s odpovedi, jeste prileti batman na drakovi :) <?php $pole = array(array(7,8,9)); function aaa() { global $pole; $a = 0; $b = 1; echo $pole[$a][$b]; } aaa(); // vypise to cislo 8 ?> |
||
SeparateSK Profil |
Pre otváranie súboru:
function otvor($meno,&$handle){ $handle=fopen($meno,"r"); } $handle=NULL; //treba definovat ako premennu - totiz funkcia potrebuje referenciu na nu otvor("subor.txt",$handle); //... fgets($handle); ... fclose($handle); |
||
Časová prodleva: 12 let
|
0