Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260

    problema nella creazione di una directory

    Salve,

    Ho installato apache 2.2 e php 5.2.5 sulla mia macchina in locale, ho eseguito la seguente funzione per creare una directory:

    Codice PHP:
    $mkdir"dir1";
    mkdir($mkdir0777); 
    Purtroppo la "nuova" directory viene creata nella root di windows "C:\dir1", mentre invece dovrebbe essere creata nella directory ove viene eseguito lo script, quindi, "C:\web server\www\dir1"...

    Com'è posso risolvere questo incoveniente?
    Devo impostare qualcosa nel file di configurazione? :master:

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    22
    Prova con:

    Codice PHP:
    exec('mkdir dir1'); 

  3. #3
    non ha senso usare il comando exec per eseguire la creazione della directory, si usa mkdir!

    E' strano invece che te la crei nella root! Lancia il comando
    echo getcwd()

    ti permette di vedere la posizione corrente della directory cosi capiamo perché la mette li la directory!

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    22
    Originariamente inviato da daniele_dll
    non ha senso usare il comando exec per eseguire la creazione della directory, si usa mkdir!
    è il sistema più veloce che mi è venuto in mente.

    Il problema può essere che non ha prima aperto la directory corrente:

    Codice PHP:
    $dir opendir(".");
    mkdir("dir1"0777

  5. #5
    mi sembra che nel manuale non venga specificato esplicitamente da nessuna parte che la directory debba essere creata nella directory corrente dello script, quindi ti consiglio di specificare sempre il path assoluto per non rischiare (il path assoluto dello script corrente è facilmente ricavabile).

  6. #6
    Originariamente inviato da isaya
    è il sistema più veloce che mi è venuto in mente.
    al massimo è il più lento

    Il problema può essere che non ha prima aperto la directory corrente:

    Codice PHP:
    $dir opendir(".");
    mkdir("dir1"0777
    come ha detto skidx, non è indicato sul manuale la necessità di utilizzare quella funzione, e aggiungo che opendir è specifico per essere utilizzato con le funzioni closedir, readdir e rewinddir

    Alternativamente si può usare anche la classe dir ( http://it2.php.net/manual/it/class.dir.php )

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260
    Facendo:
    print getcwd();

    mi restituisce:
    "C:\web server\www"


    ho provato anche a fare:
    $dir = opendir(".");
    mkdir("dir1", 0777)


    Ma nulla da fare

    Non è che dovrei configurare qualcosa nel file di configurazione del webserver?
    :master:

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    22
    Prova così:

    Codice PHP:
    $dir $_SERVER['DOCUMENT_ROOT']; // restituisce la directory all'interno della quale il server cerca le pagine web
    $dir $dir.$_SERVER['REQUEST_URI']; // aggiunge la directory nella quale stai lavorando
    $dir $dir."dir1"// crea il percorso completo della nuova cartella che sarà creata con mkdir
    mkdir($dir0777); 
    aiutati con qualche echo per vedere se il percorso generato è quello che serve a te.

    Spero che il codice vada bene, a me comunque funziona.

  9. #9
    puoi privare anche con

    mkdir(dirname(__FILE__) . '/dir1');

    dirname acquisisce il nome della directory in una path, mentre __FILE__ è una costante speciale, chiamta anche costante magica (o magic constant), che contiene il nome del file corrente

    http://it.php.net/manual/en/function.dirname.php
    http://it.php.net/manual/en/language...predefined.php

    In realtà non è una costante perché per definizione le costanti non cambiano valore, però è cosi che l'hanno chiamata

  10. #10
    per la directory corrente basta anche un
    realpath('.')

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 © 2024 vBulletin Solutions, Inc. All rights reserved.