Visualizzazione risultati 1 fino 4 di 4

Discussione: Rinominare un file in base ad un altro nome

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito Rinominare un file in base ad un altro nome

    Buonasera,
    necessito di rinominare un file con una determinata estensione in base ad un altro file sempre con determinata estensione.

    Purtroppo non mi vengono idee attualmente su come fare così chiedo aiuto a voi postando un esempio pratico:

    /alda
    - economia.doc
    - random06568.swf
    - lello.png

    /alba
    - diritto.doc
    - fileSTERANO+057e3x9e5.swf
    - aniello.png

    Ora ho bisogno che PHP rinomini il file swf in modo che abbia il nome del file doc. In sintesi dopo che PHP agisce sui file dovrei avere una cosa del genere:

    /alda
    - economia.doc
    - economia.swf
    - lello.png

    /alba
    - diritto.doc
    - diritto.swf
    - aniello.png

    Il codice attualmente in uso (e che non funziona ovviamente) è il seguente:

    Codice PHP:
    $g = glob("*/*.doc");
    foreach(
    $g as $a){
    $b = dirname($a)."/".basename($a,".doc");
    $c = $b.".swf";

    rename(dirname($a)."/*.swf",$c);

    }
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Guest

    Predefinito

    Ciao, secondo me tenti di eseguire troppe operazioni in una sola volta: io proporrei prima di scorrere tutte le directory con una prima chiamata a glob(), poi per ogni directory rinominare il file swf. Ho scritto questo codice al volo, non l'ho testato, dimmi se va bene:
    Codice PHP:
    <?php

    // scorri tutte le directori
    $dirs = glob("./*");
    foreach(
    $dirs as $dir)
    {

    if(
    is_dir($dir))
    {

    // ottieni il nome del file doc
    $doc = glob("$dir/*.doc");
    $newName = str_replace(".doc", "", basename($doc[0])); // immagino che in ogni cartella ci sia un solo file .doc

    // ottieni le informazioni del file swf
    $swf = glob("$dir/*.swf");

    // rinomini il file
    rename($swf[0], "$dir/$newName.swf"); // anche qui suppongo che ci sia un solo file swf

    }

    }

    ?>

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Grazie del tuo aiuto, ma quel codice non mi varia / modifica nemmeno un nome.

    Comunque ti confermo che c'è un solo file SWF e DOC per cartella.

    EDIT: Ho risolto, mi è venuta in mente la soluzione. Grazie lo stesso.
    Ultima modifica di miki92 : 22-05-2010 alle ore 15.18.59
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Guest

    Predefinito

    Strano l'ho appena provato e a me va =/.
    Vabbè l'importante è che sei riuscito a risolvere, ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •