Tag Archive for 'explode'

Rinominare un file in upload

Quella di rinominare un file in upload è una cosa che può essere molto utile fondamentalmente per 2 motivi:

  1. evitare di sovrascrivere file esistenti che hanno lo stesso nome
  2. evitare errori di upload dovuti a caratteri strani presenti nel nome del file

io uso un metodo molto semplice, in fase di upload, rilevo l'estensione del file con questa mia funzione, e le antepongo un nome univoco, utilizzando la funzione uniqid(pref).
Tale funzione oltre che restituire una stringa univoca permette si assegnare una sorta di prefisso, utile per identificare ad esempio i file di diverse sezioni di un sito (es. home_474ab038b3bbe.jpg)
Quindi, il solito form invierà il file da uplodare a upload.php

PHP:
  1. <form method="post" action="upload.php" enctype="multipart/form-data">
  2.     <input type="file" name="file_da_uplodare">
  3.     <input type="submit" value="Invia">
  4. </form>

... a seguire il file upload.php nel quale includo anche la funzione per rinominare il file, riceverà il file, lo rinominerà e lo uploderà.

PHP:
  1. <?php
  2.  
  3. function estensione($nome){
  4.     $trova_punto = explode(".", $nome);
  5.     $estensione = $trova_punto[count($trova_punto) - 1];
  6.     $estensione = strtolower($estensione);
  7.     if (isset($trova_punto[1]) == FALSE){
  8.         return "Nessuna estensione";
  9.     }
  10.     return $estensione;
  11. }
  12.  
  13. // directory dove va uplodato il file
  14. $directory = 'directoryupload/';
  15.  
  16. // verifica l'esistenza del file
  17. if (isset($_FILES['file_da_uplodare'])) {
  18.     $file_temporaneo= $_FILES['file_da_uplodare']['tmp_name'];
  19.     $nome_file = $_FILES['file_da_uplodare']['name'];
  20.  
  21.         // trova l'estensione del file
  22.         $estensione_file=estensione($nome_file);
  23.         // assegna un nome univooco al file
  24.         $nome_file=uniqid(file_).".".$estensione_file;
  25.  
  26.         //esegue l'upload e controlla che vada a buon fine
  27.     if (move_uploaded_file($file_temporaneo, $directory  . $nome_file)){
  28.         echo "Il file è stato caricato";
  29.     } else {
  30.         echo "Si è verificato un errore durante l'upload";
  31.     }
  32. }
  33. ?>

Estensione di un nome di file

Può essere utile ricavare l'estensione dal nome di un file di cui ad esempio si è fatto l'upload e lo si vuole rinominare con un nome univoco. Chiaramente l'estensione in questo caso non va cambiata, è quindi necessario estrappolarla dal nome del file e conservala.
Ecco una funzione che può essere di aiuto in questo senso.

PHP:
  1. function estensione($nome){
  2.     $trova_punto = explode(".", $nome);
  3.     $estensione = $trova_punto[count($trova_punto) - 1];
  4.     $estensione = strtolower($estensione);
  5.     if (isset($trova_punto[1]) == FALSE){
  6.         return "Nessuna estensione";
  7.     }
  8.     return $estensione;
  9. }
  10. $file="pippo.jpg";
  11. echo estensione($file); /// restituisce jpg

Formattare un testo

Chi fa il web master o il web developer sa che una delle cose più fastidiose è quando il cliente fornisce i testi scritti tutto in maiuscolo. Altrettanto fastidioso è quando un cliente ha l'amministrazione dei contenuti del sito e, appunto, ha il brutto vizio a scrivere tutto in maiscolo.
Con questa funzione il testo viene riformattato con il primo carattere dopo il punto in maiuscolo, e il resto in minuscolo.
Di particolare importanza 2 funzioni:

PHP:
  1. $text="TEST. TESTO MAIUSCOLO. COME FARE.";
  2.  
  3. function formatta_testo ($stringa){
  4.     $stringa = explode ('.', $stringa);
  5.     $n = count ($stringa);
  6.     for ($i = 0; $i <$n; $i++){
  7.         $stringa[$i]  = ucfirst(strtolower (trim ($stringa[$i])));
  8.         if ($i> 0){
  9.             $stringa[$i] = '&nbsp;' . $stringa[$i];
  10.         }
  11.     }
  12.     $stringa = implode ('.', $stringa);
  13.     return $stringa;
  14. }
  15.  
  16. echo formatta_testo ($text); // Test. Testo maiuscolo. Come fare.