Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema variabile php

  1. #1

    Problema variabile php

    Ciao a tutti, ho un problema col php.
    vorrei che tramite una variabile post mi venga trovato ed aperto un file txt in una directory. Fin qua tutto ok. il problema è che alcuni di questi file hanno il nome composto da lettere maiuscole e minuscole.
    Vorrei fare in modo che non venisse contato il fatto che le lettere siano maiuscole o meno.
    Qualcuno sa dirmi come fare?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se sei su server Linux, i nomi dei file sono case sensitive, è il sistema operativo che lo impone, non è un'opzione di php.

    Attualmente come passi i nomi dei file?
    Hai una casella di testo in cui scriverli?
    Non puoi usare un menu a tendina da creare leggendo i nomi dei file contenuti nella cartella? In questo modo potresti passare i nomi corretti.

  3. #3
    [CODE]
    <div id='openyourmind'><div id='stampato'>
    <?php
    if(isset($_POST['rif'])){
    $rif=$_POST['rif'];


    $vara="../../statistiche/$rif.txt";
    $var=fopen("../../statistiche/$rif.txt","r");
    $var2=fread($var, filesize($vara));
    fclose($var);


    echo" <b>$rif</b> ha ottenuto $var2 visualizzazioni.<br><br>";
    }
    ?>


    <form method='post' action=''><fieldset>
    Inserisci il riferimento per vedere quante visualizzazioni ha ottenuto.<br>
    <input type='text' placeholder='RIF' name='rif'/> <input type='submit' value='Cerca'/></fieldset></form>
    </div></div>


    <style>
    #stampato {position:absolute; left:500px; top:150px; width:500px; color:#121273;}
    </style>

    [CODE]

    Questo è il codice..dovrebbe fare in modo che non si distinguessero maiuscole da minuscole in modo da raggiungere il percorso.. ad esempio in questo caso il riferimento è: Mi10572. O lo scrivo così o non trova il percorso

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    La parte di codice che si occupa di recuperare i file è questo
    Codice PHP:
    $rif=$_POST['rif'];


    $vara="../../statistiche/$rif.txt";
    $var=fopen("../../statistiche/$rif.txt","r");
    $var2=fread($varfilesize($vara));
    fclose($var); 
    Dov'è che gli staresti dicendo di non tener conto di maiuscole e minuscole?

  5. #5
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Nel caso si fosse trattato di presenza sul server di filename TUTTO minuscolo o TUTTO maiuscolo, avrei proposto uno step di controllo con file_exists($filename) : se il filename così come digitato dall' utente NON si ritrova, il test converte la sringa del filename tutta in minuscolo con strtolower() e ritenta; se l' esito è nuovamente negativo (false), applica la strtoupper() e ritenta; se neppure questo esiste, esce un messaggio di errore.

    Ma te ci hai il misto ....
    Si potrebbe ciclare, per ogni singola lettera. Si potrebbe fare in AJAX al digitare dell' Utente. Si potrebbe (soluzione più semplice) sperare cha la gente sappia scrivere giusto ....

  6. #6
    Non si puo' ovviare al fatto che un filesystem sia case sensitive, "A" e "a" sono due lettere diverse tanto quanto lo sono "A" e "Q". Quello che puoi fare e' mostrare i nomi dei file in una select invece di farli scrivere a mano.

  7. #7
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Oppure, cosa molto poco elegante:
    Ti fai un ciclo su tutti i file della directory e fai il confronto uno per uno con $rif.
    Codice PHP:
    $found "";
    // Molto pseudocodice :-)
    foreach($files_nella_directory as $file){
         if(
    strtolower($rif) == strtolower(nome_senza_ext($file))
              
    $found $file;
    }

    if(
    $found){
        
    // Apri il file
    }else{
       
    // Non trovato

    Ps: Tieni presente però non potresti distinguere file "simili", del tipo Mi250250.txt e mI250250.txt

    Ps2: Ma no puoi fare in modo di avere i nome dei file txt solo in minuscolo/maiuscolo?
    Ultima modifica di boots; 14-10-2013 a 10:42

  8. #8
    mmmm si potrei crearli tutti in maiuscolo.. questo è il codice che uso per creare il riferimento

    <?php function random()
    {
    $caratteri = 6;
    $str = "";
    For($I=0;$I<$caratteri;$I++)
    {
    do{
    $N = Ceil(rand(48,122));
    }while(!((($N >= 48) && ($N <= 57)) || (($N >= 65) && ($N <= 90)) || (($N >= 97) && ($N <= 122))));
    $str = $str.Chr ($N);
    }
    return $str;
    }
    $rif=random();
    ?>

    ..esce quindi una stringa alfanumerica random..ma come faccio a far inserire solo lettere in maiuscolo?

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.