| 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 strednikOtazky: 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: 14 let
|
|||
0