Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    29

    consiglio su funzione fwrite fopen per spostare riga in un file

    Ciao...

    ho questa funzione:

    $link=$_POST['linkfeed'];
    $url=$_POST['url'];
    $file_config=UPLOAD_DIR.$url;

    function addRSSItem($rssFile, $firstItem, $item){
    // Backup file
    if(!copy($rssFile, 'backup.rss')) die('Backup failed!');
    // Store file contents in array
    $arrFile = file($rssFile);
    // Open file for output
    if(($fh = fopen($rssFile,'w')) === FALSE){
    die('Failed to open file for writing!');
    }
    // Set counters
    $currentLine = 0;
    $cntFile = count($arrFile);
    // Write contents, inserting $item as first item
    while( $currentLine <= $cntFile ){
    if($currentLine == $firstItem) fwrite($fh, $item);
    fwrite($fh, $arrFile[$currentLine]);
    $currentLine++;
    }
    // Delete backup
    unlink('backup.rss');
    }

    $data = "<outline text=\"Ultimi feed\" type=\"rss\" xmlUrl=\" ".$link."\"> ";
    addRSSItem($file_config,21,$data);

    che mi permette di inserire una stringa in un file opml o xml o comunque in un file, alla riga 21 e funziona ..il problema è che io vorrei che spostasse di una posizione la riga 21 e non inserirla nella riga 21 a fianco di quella riga che si trova il quella posizione.
    è possibile spostare la riga 21 di una riga prima di scrivere la stringa ?

    la funzione utilizza un backup temporaneo prima di scrivere....magari utilizzando la funzione stessa facendo scendere di una posizione la riga 21.. mahhh


    o altrimenti se conoscete qualcosa di simile.


    grazie per un eventuale aiuto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mah.... se ho capito... puoi aggiungere un "\r\n" per "andare a capo"... cmq se importi tutti in un array ti conviene "inserire" l'elemento con le funzioni dei vettori...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    29
    cioè dovrei dovrei usare gli array popolandoli del testo del file?

    cioè inserisco tutte le righe del file in un array e poi arrivati alla 21 o 22 inserisco la riga che voglio ed il resto lo metto sotto e poi riscrivo il file..

    intendevi questo?
    hai mica qualche pezzetto di codice per iniziare..tipo apri il file, fai i controlli importi riga xr riga nell array usando magari foreach, e poi gestici l array e infine riscrivi il file.

    grazie per la risposta cmq..

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    29
    ho provato così però non funge....

    //cerco la ricorrenza <body>
    $nome="<body>";
    foreach ($lines as $key => $value){

    if (stristr($value, $nome))
    for($i=0; $i >=$key;$i++){

    // vorrei cancellare le righe da 0 a $key che sarebbe dove c è <body>
    unset($lines[$i]);

    }

    }

    questo mi trova in numero di linea dove è contenuto <body> però il ciclo for non funziona così.

    dove sbaglio ?

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.