Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184

    ottimizzare il nome del file

    Salve a tutti,
    ho la necessità di creare dei file statici in base ad un post da un form, in particolare vorrei staticizzare il titolo $_REQUEST['titolo']... il problema è che nel titolo ci potrebbero essere caratteri speciali, apostrofi, tag html, o altro...

    Vorrei trovare un modo per eliminare il tutto riportando nel più semplice dei modi il titolo, per non creare problemi al webserver con nomi di file e caratteri non consentiti...


    Mi date una mano?

  2. #2
    vedi se una di queste funzioni ti può aiutare
    htmlspecialchars o ereg_replace

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184
    Ciao,
    grazie per la risposta... il problama di htmlspecialchars è ke converte i caratteri speciali in entità HTML e non credo vada bene per un nome di file. Mentre ereg_replace dovrei capireche espressione regolare usare...

    Mi dai una mano a?
    io pensavo di sostituire tutti gli spazi con "_" e poi eliminare tutti i caratteri speciali. Inoltre non so come si comporta apache quando trova un nome di file con una lettera accentata... altrimenti devo sostituire anke quelle senza accento dove é -> e


    Stefano

  4. #4
    spiegami meglio la tua esigenza forse c'è una soluzione migliore.

    sui caratteri da filtrare non saprei aiutarti più di tanto...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184
    quello che devo fare è staticizzare degli articoli usando il titolo dell'articolo come nome del file

    es: Esame di maturità agli sgoccioli

    diventa: esame_di_maturità_agli_sgoccioli.html
    siccome nel titolo ovviamente ci possono essere anche dei caratteri speciali come ad esempio []#@!|?^ e le lettere accentate, il mio problema è che generando un file con uno di questi caratteri il server mi restituisca errore quindi vorrei fare in modo che lo script elimini tutto ciò che possa dare fastidio.


    Stefano

  6. #6
    ok.
    secondo me hai varie possibilità, la migliore sarebbe usare un db, cmq se devi usare i file potresti salvare il file su disco con un nome univoco, tipo data_ore_minuti_secondi es. 20090702_104701, e in un altro file chiamato per es indice.txt, fai una relazione del tipo:

    20090702_104701 = Esame di maturità agli sgoccioli


    in questo modo hai il vantaggio di avere immediatamente un elenco dei file con i relativi titoli.

    un'altra soluzione sarebbe quella di salvare il file con il crc che fai sul titolo e mettere nel file indice la relazione CRC = titolo.

    per la lettura del file indice, se usi qualche accorgimento particolare, potresti anche usare direttamente le funzioni del php per la lettura dei file ini.

    spero di averti aiutato, magari scrivi di nuovo.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

    Re: ottimizzare il nome del file

    Originariamente inviato da flander
    Salve a tutti,
    ho la necessità di creare dei file statici in base ad un post da un form, in particolare vorrei staticizzare il titolo $_REQUEST['titolo']... il problema è che nel titolo ci potrebbero essere caratteri speciali, apostrofi, tag html, o altro...

    Vorrei trovare un modo per eliminare il tutto riportando nel più semplice dei modi il titolo, per non creare problemi al webserver con nomi di file e caratteri non consentiti...


    Mi date una mano?
    prova con questa funzione

    Codice PHP:
    <?php
    function fix_file_name($string){ 
        
    $string strtr ($string"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ""AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn"); 
        for(
    $i=$i strlen($string); $i++) { 
            if(!
    ereg("([0-9A-Za-z_.])",$string[$i])) 
                
    $string[$i] = "_"
        } 
        return 
    $string
    }
    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184
    Ciao,
    facendo come dici tu perderi ogni possibilità di essere indicizzato sui motori di ricerca
    ho letto l'articolo http://php.html.it/articoli/leggi/84...i-ai-motori/1/
    ma non mi piace molto come soluzione...

    qui invece ho trovato una cosa che potrebbe fare al caso mio ma non considera tutte le eccezioni possibili secondo me...

    http://www.stragulp.com/web+master/g...il_codice.html

    speravo ci fosse un modo semplice per usare, anche in combinata, regex e str_replace etc etc


    Stefano

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184

    Re: Re: ottimizzare il nome del file

    Originariamente inviato da nicola75ss
    prova con questa funzione

    Codice PHP:
    <?php
    function fix_file_name($string){ 
        
    $string strtr ($string"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ""AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn"); 
        for(
    $i=$i strlen($string); $i++) { 
            if(!
    ereg("([0-9A-Za-z_.])",$string[$i])) 
                
    $string[$i] = "_"
        } 
        return 
    $string
    }
    ?>
    mille grazie adesso la provo e ti faccio sapere... ancora non ho molti articoli x cui devo fare dei test ma credo, a prima vista, che possa essere quella giusta... una curiosità per aggiungere eventuali caratteri speciali che non sono stati considerati come devo fare?

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    http://se2.php.net/manual/it/function.strtr.php

    guarda la sintassi della funzione.

    Aggiungi i caratteri che vuoi al secondo parametro e quelli con cui saranno rimpiazzati al terzo.

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.