Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [PHP] file_exists()

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    36

    [PHP] file_exists()

    Qualcuno sa dirmi se ha rilevato un anomalia usando la funzione in oggetto ?
    Poichè da qualche giorno improvvisamente non esegue il controllo dell'esistenza dei file
    situati in una cartella condivisa in una intranet.
    Per assurdo se indico (!file_exist($path)) me li indica tutti presenti anche se fisicamente non esistono!!
    Ripeto che nulla è stato cambiato, di punto in bianco si comporta cosi', anche portando i file
    in locale e ridisegnando il percorso ottengo lo stesso risultato.


    while ($relatio = mysql_fetch_array($results3)) {
    $path="\\\\desk05\\cartella\\note\\";
    $ext=".doc";
    $path.=$relatio[3]; //numero della nota
    $path.=$ext;
    echo $path; // controlllo visivo se il path è corretto
    if (file_exists($path)) {
    // se esiste la nota visualizza la parola "leggi" in verde e la linka ed attiva una ceckbox per l'invio di un array ad una form

    echo "<td class=\"tdct\">";
    echo ""; echo "<p class=\"tdctsiscan\">"; echo "leggi"; echo "</p>";echo "";echo "</td>";

    echo "<td class=\"tdct\">"; echo "<input type=\"checkbox\" name=\"sel_[]\" id=\"sel_\" value=\"$relatio[0]\" >"; echo "</input>"; echo "</td>";
    echo "</tr>";
    } else {

    // se non esiste la nota visualizza la parola "nota ssente " in rosso e disattiva la ceckbox per l'invio di un array ad una form

    echo "<td class=\"tdct\">";
    echo "<a href=\"#\" >"; echo "<p class=\"tdctnoscan\">";echo "nota assente";echo "</p>";echo "</a>";echo "</td>";

    echo "<td class=\"tdct\">"; echo "<input type=\"checkbox\" name=\"sel_[]\" id=\"sel_\" value=\"$relatio[0]\" disabled=\"disabled\">"; echo "</input>"; echo "</td>";

    echo "<td class=\"tdct\">"; echo "file indisponibile"; echo "</td>"; //// evidenzia l'assenza della nota

    echo "</tr>";
    }

    }


    Ringrazio tutti per qualsiasi aiuto, è da tre giorni che ci perdo la testa e sulla ricerca nel forum di comportamenti simili ho individuato una vecchia risposta di Alcio_74 in cui anche a lui dava identici problemi questa funzione.

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    sinceramente non saprei dirti il motivo per cui si comporti così, però ti consiglio di provare con is_file() che olòtre a verificare se il file esiste verifica inoltre la sua integrità...

    per il resto..
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    36
    Grazie per l'interessamento dottwatson ma il risultato è sempre lo stesso, oltre la funzione da te indicata ho provato anche is_readable e niente anche questa.
    Quello che mi lascia perplesso sia in rete che in locale è il fatto che se antepongo a tutte le funzioni (file_exist, is_file, is_readable) l'operatore di negazione "!" vengono definite tutte presenti con i relativi link (anche se non presenti fisicamente dando pagina di errore).
    Sul sito di PHP, alla voce della funzione incriminata ho visto qualche riferimento a dei falsi positivi o ritorni boleani errati, ma il mio inglese e alla "aiemveriuell fench jù" e non ci azzecco 'na mazza.
    Rimango sintonizzato per qualche novià.........................

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    36
    Ullallà credevo solo IE capace di imbrogli similli sulla cache............

    Grazie cubalibre810, ho provato dopo le variabili che formano il percorso
    ad inserire "clearstatcache()" sia nudo e crudo sia dandogli come argomento la variabile $path ma non cambia niente.

  6. #6
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Non ho analizzato bene il tuo codice comunque occhio perchè file_exists restituisce true non solo se il path assegnato è un file valido ma pure se è solo una directory valida.

    "Restituisce TRUE se il file o la directory specificata da filename esiste; FALSE altrimenti."

    http://it2.php.net/file_exists

    Prova con is_file()

    http://it2.php.net/manual/it/function.is-file.php

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    36
    Grazie Sgurbat della precisazione, è vero quello che mi riporti, ho effettuato delle prove in tal senso, ma rimane il fatto che alcuni giorni addietro il codice funzionava perfettamente dandomi nelle righe interessate dal ciclo while le risposte alternate a seconda o no dell'esistenza materiale della note nella sua cartella a seguito della registrazione nel database..........poi da un certo momento in poi mi ritornava sempre FALSE e se anteponevo l'operatore di negazione "!" a if_exists ( come ad " is_file " ...eccc..ecc...)
    mi tornava sempre tutto TRUE (cioè vero che è falso) quindi a seconda del caso o mi ritrovo tutte le note come non non caricate nell'apposita directory ( anche quelle che invece lo sono) oppure tutte presenti ( anche quelle che invece non ci sono).
    Mi sento un poco rintronato da questa faccenda dato che anche tutte le altre funzioni
    suggeritemi si comportano nello stessa identica maniera.....comunque non mi rimane che pasare al setaccio in maniera granulare tutti gli script coinvolti, le directory e i percorsi nella speranza di trovare magari come magagna una di quelle dimenticanze o insattezze che ti fanno sbattere la testa al muro per giorni dicendo " ma come ho fatto a non vederla...???? "

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.