fopen e numero risorsa

claudiocarcaci

Nuovo Utente
28 Ott 2011
4
0
1
PHP:
$this->handle = fopen($dir, "r");
lettura del file senza problemi
...
...
...
fclose($this->handle);

$hh = fopen($dir, "w");
$this->jsonstring = json_encode($this->jsonobject);
fwrite($hh, $this->jsonstring);
fclose($hh);

Quando faccio la seconda fopen in scrittura cancellando l'intero contenuto del file con "w" mi ritorna un $hh = "resource type 10" anzichè 5 che è il corretto numero di risorsa per la scrittura del file e ovviamente non funziona nulla, ma php non da errori.
 
Ultima modifica:
Ti sei assicurato che il file possa essere modificato dall'utente che esegue lo script?

Sì...

Mi chiedo dove posso andare a leggere cosa significa il numero associato alla risorsa.
E inoltre mi chiedo perchè anche in modalità verbosa il log non riporta nulla.
Cioè il software esegue istruzioni che non danno gli effetti sperati e da nessuna parte risulta scritto il perchè?
Ma che razza di ingegneri del software hanno creato PHP?
 
Imposta il livello di report degli errori a E_ALL:
PHP:
error_reporting(E_ALL);
Se neanche così restituisce errori forse è il caso di chiamare un esorcista. :)

O di cambiare linguaggio :D

Il report degli errori è già impostato su E_ALL nel php.ini.
Inoltre non ho trovato mezza riga su internet e nemmeno sulla documentazione ufficiale che spieghi cosa cazzo siano i numeri associati alla risorsa.
So solo che una fopen in write normalmente da 5 come risorsa, in questo caso da 10 e nulla funziona.

Provo la modalità di mettere una sleep tra la fclose e la successiva fopen non vorrei che qualche demente non abbia verificato il controllo di concorrenza sull'assegnazione delle risorse e la fopen se non passa "abbastanza tempo" prende non correttamente la risorsa appena chiusa.

Mi chiedo perchè le tecnologie peggiori spesso siano anche le più diffuse... ma vabè, tralascio.
 

Discussioni simili