Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 33
  1. #21
    Il file si chiama magic
    Nel file mime.types ci sono invece tutti i tipi mime che potete immaginare con relative estensioni...

    OK adesso sappiamo che le jpeg iniziano con 0xffd8 e che il tipo di dato è beshort
    http://httpd.apache.org/docs/mod/mod_mime_magic.html
    ora come faccio a implementarlo?
    Per adesso uso questo codice...
    codice:
    <?php
    //leggiamo i files della cartella, li selezioniamo e li ficchiamo in un array
    // apriamo la directory
    $open_handle = opendir($cartella);
    // impostiamo un ciclo while() per scorrere tutto il contenuto
    while($read = readdir($open_handle)) {
    	// escludiamo i files/directory che non ci interessano
    	if($read != "." && $read != ".." && exif_imagetype($cartella . $read) == "2") {
    		$array_immagini[] = $cartella . $read;
    		//echo ("Il file " . $read . " è stato inserito nell'array");
    		//echo mime_content_type($cartella . $read);
    		//echo exif_imagetype($cartella . $read);
    	} else {
    		//echo ($read . " non è una jpeg");
    	}
    }
    // chiudiamo la directory
    closedir($open_handle);
    ?>
    Come lo devo modificare per usare il metodo proposto dal mitico daniele al posto del exif_imagetype?

  2. #22
    codice:
    	if($read != "." && $read != ".." ) {
    		$fp = fopen($cartella . $read, 'rb');
    		$data = fread($fp, 4);
    		fclose($fp);
    		if (substr($data, 0, 2) == "\xFF\xD8") {
    			$valid = true;
    		} else {
    			$valid = false;
    		}
    		
    		if ($valid === true) {
    			$array_immagini[] = $cartella . $read;
    		}
    		
    	} else {
    		//echo ($read . " non è una jpeg");
    	}
    non l'ho provato, ma dovrebbe andare
    per aggiungere altri formati validi...basta modificare

    if (substr($data, 0, 2) == "\xFF\xD8") {

    come vedi qui estraggo i primi 2 caratteri di quei 4 presi con l'fread e li confronto con i due caratteri standard presenti nell'header jpeg
    basta fare la stessa cosa con gli altri

    ovviamente con questo sistema sei certa al 100% che il file è quello, tranne se lo scrivono di proposito, anche se non sarebbe molto utile (tranne per usare qualche buggone di internet exploder)
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #23
    Originariamente inviato da andrea.paiola
    Il file si chiama magic
    Nel file mime.types ci sono invece tutti i tipi mime che potete immaginare con relative estensioni...

    OK adesso sappiamo che le jpeg iniziano con 0xffd8 e che il tipo di dato è beshort
    http://httpd.apache.org/docs/mod/mod_mime_magic.html
    ora come faccio a implementarlo?
    Per adesso uso questo codice...
    codice:
    <?php
    //leggiamo i files della cartella, li selezioniamo e li ficchiamo in un array
    // apriamo la directory
    $open_handle = opendir($cartella);
    // impostiamo un ciclo while() per scorrere tutto il contenuto
    while($read = readdir($open_handle)) {
    	// escludiamo i files/directory che non ci interessano
    	if($read != "." && $read != ".." && exif_imagetype($cartella . $read) == "2") {
    		$array_immagini[] = $cartella . $read;
    		//echo ("Il file " . $read . " è stato inserito nell'array");
    		//echo mime_content_type($cartella . $read);
    		//echo exif_imagetype($cartella . $read);
    	} else {
    		//echo ($read . " non è una jpeg");
    	}
    }
    // chiudiamo la directory
    closedir($open_handle);
    ?>
    Come lo devo modificare per usare il metodo proposto dal mitico daniele al posto del exif_imagetype?
    Cmq se ho capito bene questo codice ke hai scritto fa la stessa cosa della funzione glob
    http://it.php.net/glob

    Mi sembra ke una volta ho letto su un manuale:
    alcune funzioni ke mette a disposizione il php possono essere sostituite da un semplice codice creato da te, però perdi nelle prestazioni.
    Quindi se questo linguaggio ci offre tantissime funzioni xkè nn dobbiamo sfruttarle?!?!

  4. #24
    Originariamente inviato da carmineabomb
    Cmq se ho capito bene questo codice ke hai scritto fa la stessa cosa della funzione glob
    http://it.php.net/glob

    Mi sembra ke una volta ho letto su un manuale:
    alcune funzioni ke mette a disposizione il php possono essere sostituite da un semplice codice creato da te, però perdi nelle prestazioni.
    Quindi se questo linguaggio ci offre tantissime funzioni xkè nn dobbiamo sfruttarle?!?!
    Daccordissimo non sapevo della sua esistenza come la implementeresti tenendo conto del messaggio di daniele?
    Non so se però glob usa più risorse della mia funzione... come vedi non sempre le funzioni che PHP ha già dentro sono le migliori...daniele che ne pensi?

  5. #25
    Originariamente inviato da carmineabomb
    Cmq se ho capito bene questo codice ke hai scritto fa la stessa cosa della funzione glob
    http://it.php.net/glob

    Mi sembra ke una volta ho letto su un manuale:
    alcune funzioni ke mette a disposizione il php possono essere sostituite da un semplice codice creato da te, però perdi nelle prestazioni.
    Quindi se questo linguaggio ci offre tantissime funzioni xkè nn dobbiamo sfruttarle?!?!
    xche non va bene per questa situazione?
    a noi serve verificare l'header del file non l'estensione
    certo, usare glob può facilitare...

    ma se hai 10 file e usi readdir o usi glob ottieni lo stesso tempo di esecuzione ... forse recuperi qualche miliardesimo di secondo...ma alla fin fine?
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #26
    Originariamente inviato da andrea.paiola
    non faccio upload di immagini... come lo trovo sto type?
    beh, se lo dicevi subito...

    cmq l'exif allora fa quello che dice daniele! legge tutti gli header dell'immagine, nel caso ti servano anche altri dati...


  7. #27
    Originariamente inviato da mdsjack
    beh, se lo dicevi subito...

    cmq l'exif allora fa quello che dice daniele! legge tutti gli header dell'immagine, nel caso ti servano anche altri dati...

    Ma guarda che sei strano eh! Prima me lo sconsigliavi perchè lento e adesso... mi sa che userò il codice di daniele

    se volessi altri dati tipo la grandezza dei files in kb e le dimensioni mi converrebbe usarlo?

  8. #28
    Originariamente inviato da andrea.paiola
    Ma guarda che sei strano eh! Prima me lo sconsigliavi perchè lento e adesso... mi sa che userò il codice di daniele
    Ma forse sei strano tu! in caso di upload ci sono metodi più veloci, altrimenti puoi solo leggere l'header, dato che l'estensione vale poco e niente!

    ciao,
    jack.

  9. #29
    se volessi altri dati tipo la grandezza dei files in kb e le dimensioni in pixel mi converrebbe usarlo?

  10. #30
    no, per i kilobyte usi semplicemente la grandezza del file

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.