Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Alcune funzioni

  1. #1
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905

    Alcune funzioni

    Salve a tutti, voglio mostrarvi alcune funzioni per fare cose di cui in php non ne esiste una funzione relativa.

    Leggere i file in una directory e memorizzarli su array:
    Codice PHP:
    function listdir($d) {
      if(
    $h = @opendir($d)) {
        while(
    false !== $f = @readdir($h)) {
          if(
    $f != "." && $f != "..") {
            
    $ar[] = $f;
          }
        }
      }else
        return 
    false;
      if(!isset(
    $ar))
        return 
    false;
      else
        return 
    $ar;

    poi per sapere se è un file od una directory fate n if con is_dir.

    Costruire un array con in ogni elemento un pezzo di una stringa:
    Codice PHP:
    function array_str($s) {
      
    $len strlen($s);
      for(
    $i 0$i <= $len$i++) {
        
    $ar[] = substr($s$i1);
      }
      return 
    $ar;

    Copiare una cartella intera con le relative sottocartelle e i relativi file in tutte le sottocartelle e nella dir pricipale:
    Codice PHP:
    function copydir($source$dest) {
    if(!
    is_dir($source)) {
      return 
    false;
      exit;
    }
    if(
    is_dir($dest)) {
      return 
    false;
      exit;
    }
    if(!
    mkdir($dest)) {
      return 
    false;
      exit;
    }
    if(!
    $handle opendir($source)) {
      return 
    false;
      exit;
    }else{
      
    $source = (substr($source, -11) != "/") ? $source : (substr($source0strlen($source) - 1));
      
    $dest = (substr($dest, -11) != "/") ? $dest : (substr($dest0strlen($dest) - 1));
      while(
    false !== $file readdir($handle)) {
        if(
    $file != "." && $file != "..") {
          if(
    is_dir($source "/" $file)) {
            
    copydir($source "/" $file$dest "/" $file);
            continue;
          }
          if(
    is_file($source "/" $file)) {
            if(!
    is_readable($source "/" $file)) {
            continue;
            }
            if(@
    copy($source "/" $file$dest "/" $file)) {
              continue;
            }else{
              continue;
            }
          }
        }
      }
      
    closedir($handle);
    }
    return 
    true;

    rileva il titolo di una pagina remota (esigenza abbastanza richiesta):
    Codice PHP:
    function pagetitle($url) {
      
    $contents file($url);
      foreach(
    $contents as $line) {
        if(
    preg_match("/^<title>(.*?)<\\/title>$/"$line)) {
          
    $title preg_replace("/^<title>(.*?)<\\/title>$/""\\\\1"$line);
        }
      }
      return 
    $title;


  2. #2
    Solo una domanda, ma tu le provi le cose prima di postarle ?

    Secondo me no, e se vuoi sapere perchè, prova la tua funzione readfile()

    codice:
    function readfile($f) {
      $fp = fopen($fp, "r");
      $content = fread($fp, filesize($f));
      fclose($fp);
      return $content;
    }
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  3. #3
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    no scusa mi è scappata la "p". Sorry modifico.

    [edit]fatto scusa...

  4. #4
    Originariamente inviato da php_34
    no scusa mi è scappata la "p". Sorry modifico.

    [edit]fatto scusa...
    La p non c'entra niente cristo, ma provala
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  5. #5
    Originariamente inviato da gm
    La p non c'entra niente cristo, ma provala
    oppure copiarla bene dal manuale...
    codice:
    <?php
    $filename = "c:\\files\\somepic.gif";
    $handle = fopen($filename, "rb");
    $contents = fread($handle, filesize($filename));
    fclose($handle);
    ?>

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    non sapevo esistesse già, scusa MAMMA MIA......

  7. #7
    Originariamente inviato da php_34
    non sapevo esistesse già, scusa MAMMA MIA......
    Ma non puoi postare del codice, anche se animato dalle migliori intenzioni, senza averlo provato ti rendi conto ?
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  8. #8
    esiste già una funzione che ti elenca le i file e le directory presenti in una cartella e ti ritorna un'array ... puoi anche applicare dei filtri

    http://it.php.net/glob

    mentre per la funzione copydir ... guarda che gli exit dopo i return sono perfettamente inutili e ti consiglio di differenziare gli errori in modo da poter inviare all'utente errori diversi e più specifici

    per la funzione

    readfile

    c'è
    http://it.php.net/file_get_contents

    la funzione array_str non è molto utile dato che una stringa la puoi già gestire come gestisci array, o quasi:
    echo $stringa{1};

    ti stampa il secondo carattere della stringa

    e la funzione
    codice:
    function pagetitle($url) {
      $contents = file($url);
      foreach($contents as $line) {
        if(preg_match("/^<title>(.*?)<\/title>$/", $line)) {
          $title = preg_replace("/^<title>(.*?)<\/title>$/", "\\1", $line);
        }
      }
      return $title;
    }
    ti conviene riscriverla in questo modo
    codice:
    function pagetitle($url)
    {
      $contents = file_get_contents($url);
      preg_match('/<title>([^\<]+)<\/title>/is', $contents, $results)
      return isset($results[1]) == true && $result[1] !== '' ? $result[1] : false;
    }
    comunque la funzione qui non l'ho provata quindi se da errore ditemelo che controllo perché lo da

  9. #9
    Originariamente inviato da gm
    Ma non puoi postare del codice, anche se animato dalle migliori intenzioni, senza averlo provato ti rendi conto ?
    o se lo posti almeno avvisa dicendo chiaramente che non lo hai provato e che quindi potrebbe dare errori

  10. #10
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    ok calma ammetto ho scritto al volo, NON SAPEVO DELL'ESISTENZA DELLA SUDDETTA FUNZIONE READFILE() e l'ho messa, quindi mi tocca eliminarla. Scusatemi utilizzate le altre.

    @daniele_dll: ok vabbe da ora non sparo più cose inutili......

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.