Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Copia file non funziona

    Perchè non funziona sto semplice codice?
    il file names.txt contiene un nome di file per ogni riga.

    codice:
    $names = file("names.txt");
    
    $source = "source.pdf";
    
    foreach($names as $nome){
    	if (!copy($source, "data/".$nome)) {
    	    echo "failed to copy $file...\n";
    		}
    	}
    L'errore:
    [function.copy]: failed to open stream: Invalid argument in ...

    Se inserisco un nome singolo funziona regolarmente.
    è meglio tacere e far credere di essere stupido piuttosto che parlare e togliere ogni dubbio

  2. #2

    Re: Copia file non funziona

    Ciao,

    ma cosa vuoi fare esattamente?

    Se vuoi prendere il contenuto di un file di testo e leggere le varie righe si può fare in vari modi...

    Facci sapere!

  3. #3
    io ho il file source.pdf

    Lo voglio moltiplicare in una cartella con vari nomi:
    1.pdf
    2.pdf
    3.pdf


    I nomi sono contenuti in un file di testo che si chiama names.txt
    questo names è così composto:
    codice:
    1.pdf
    2.pdf
    3.pdf
    .
    .
    .
    1000.pdf
    è meglio tacere e far credere di essere stupido piuttosto che parlare e togliere ogni dubbio

  4. #4
    In pratica il copy non va in questo modo
    if (!copy($source, "data/".$nome)) {
    echo "failed to copy $file...\n";


    funziona se metto
    if (!copy($source, "data/1.pdf")) {
    echo "failed to copy $file...\n";
    è meglio tacere e far credere di essere stupido piuttosto che parlare e togliere ogni dubbio

  5. #5
    Aggiungi la funzione trim() che elimina i caratteri speciali tipo \n e \r dalle righe lette dal file dei nomi:

    Codice PHP:
    $names file("names.txt");
    $source "source.pdf";

    foreach(
    $names as $nome){
        if (!
    copy($source"data/".trim($nome))) {
            echo 
    "failed to copy $nome...\n";
        }

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Ok mi è più chiaro adesso.

    Qui il codice su cui potresti iniziare a lavorare
    http://www.w3schools.com/php/php_file.asp

    codice:
    <?php
    $file = fopen("welcome.txt", "r") or exit("Unable to open file!");
    //Output a line of the file until the end is reached
    while(!feof($file))
      {
      echo fgets($file). "
    ";
      }
    fclose($file);
    ?>
    Vedi se funziona questo codice, prima di tutto.

    (Qui il riferimento ufficiale per questa funzione http://php.net/manual/en/function.fgets.php).

    Poi sei sicuro che:
    - la cartella dove vuoi copiare abbia i permessi di scrittura adeguati?
    - il percorso dei file (originali e di destinazione) sia corretto se rapportato al tuo spazio web o cartella dove lo script viene eseguito?




    Originariamente inviato da luqwe
    In pratica il copy non va in questo modo
    if (!copy($source, "data/".$nome)) {
    echo "failed to copy $file...\n";


    funziona se metto
    if (!copy($source, "data/1.pdf")) {
    echo "failed to copy $file...\n";

  7. #7
    Originariamente inviato da satifal
    Aggiungi la funzione trim() che elimina i caratteri speciali tipo \n e \r dalle righe lette dal file dei nomi:

    Codice PHP:
    $names file("names.txt");
    $source "source.pdf";

    foreach(
    $names as $nome){
        if (!
    copy($source"data/".trim($nome))) {
            echo 
    "failed to copy $nome...\n";
        }

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Grazie mille a tutti.
    Col trim funziona benissimo.
    è meglio tacere e far credere di essere stupido piuttosto che parlare e togliere ogni dubbio

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.