[PHP] Creare pagina con collegamenti ipertestuali da file txt

Discussione in 'PHP' iniziata da giannit, 30 Marzo 2017.

Tag (etichette):
  1. giannit

    giannit Nuovo Utente

    Registrato:
    30 Marzo 2017
    Messaggi:
    31
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Sesso:
    Maschio
    Ciao, vorrei sapere se è possibile creare una pagina php, importando i dati da un file txt, mi spiego meglio (spero) ho un file.txt che risulta cosi composto:
    Codice:
    Collegamento 1
    
    http://www.esempio.com/index1.php
    
    Collegamento 2
    
    http://www.esempio.com/index2.php
    
    Collegamento 3
    
    http://www.esempio.com/index3.php
    essendo una lista di esempio ma lunga, sarebbe possibile creare un file php tipo:

    Codice:
    <a href="http://www.esempio.com/index1.php">Collegamento 1</a>
    <a href="http://www.esempio.com/index2.php">Collegamento 2</a>
    <a href="http://www.esempio.com/index3.php">Collegamento 3</a>
    in parole povere automatizzare la creazione dei tanti link che ho nel txt anzichè modificare a mano tutto? Grazie
     
  2. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Ciao, leggi il file cicli il contenuto e lavori ogni riga, più o meno come hai fatto in questa discussione.
    Puoi utilizzare 2 indici per creare un array con il quale andrai a comporre i link
    PHP:
    <?php
    $file 
    "file.txt";

    $fr fopen($file'r');
    $i $x 0;
    $links = array();
    while (!
    feof($fr)) {
        
    $riga trim(fgets($fr));
        if (!empty(
    $riga)) {
            if (
    $i == 0) {
                
    $links[$x]['name'] = $riga;
            } else {
                
    $links[$x]['link'] = $riga;
                
    $x++;
            }
            
    $i++;
        }
    }
    fclose($fr);

    foreach (
    $links as $link) {
        echo 
    "<a href='" $link['name'] . "'>" $link['link'] . "</a><br/>";
    }
     
  3. giannit

    giannit Nuovo Utente

    Registrato:
    30 Marzo 2017
    Messaggi:
    31
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Sesso:
    Maschio
    Codice:
    foreach ($links as $link) {
        $st = "<a href='" . $link['link'] . "'>" . $link['name'] . "</a><br/>";
    fwrite(fopen('menu.php','w'),$st);
    
    Prima cosa, ringrazio per la risposta, script perfetto, ma unico appunto per chi dovesse copiarlo o prenderlo in considerazione e che
    Codice:
     echo "<a href='" . $link['link'] . "'>" . $link['name'] . "</a><br/>";
    Volendo creare un file menu.php ho eseguito questa modifica:
    Codice:
    foreach ($links as $link) {
        $st = "<a href='" . $link['link'] . "'>" . $link['name'] . "</a><br/>";
    fwrite(fopen('menu.php','w'),$st);
    
    ma quando vado ad aprire il file menu.php trovo solamente un collegamento, per l'esattezza l'ultimo della lista, mi sai dire dove sbaglio? grazie
     
    Ultima modifica: 31 Marzo 2017
  4. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    ma mi sembrava di aver capito male. Nel file php devono esserci solo i link ? se non contiene codice php puoi usare un file html.
    comunque dopo aver creato l'array di link prepari una stringa e crei il file php
    PHP:
    $output = "";
    foreach ($links as $link) {
        $output .= "<a href='" . $link['name'] . "'>" . $link['link'] . "</a><br/>";
    }
    $file = "menu.php";
    $codice = "<?php
    ?>
    {$output}
    ";
    $fo = fopen($file, "w");
    chmod($file, 0755);
    fwrite($fo, $codice);
    fclose($fo);
     
  5. giannit

    giannit Nuovo Utente

    Registrato:
    30 Marzo 2017
    Messaggi:
    31
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Sesso:
    Maschio
    Fatte le modifiche, mi sono accorto che ad ogni fine link non andavo a capo, ed o aggiunto il tag \n
    Codice:
    $output .= "<a href='" . $link['link'] . "'>" . $link['name'] . "\n </a><br/>\n" ;
    Grazie mille, per la pazienza e disponibilità.
    P.S. è normale che se il file menu.php esiste, questo non venga cancellato e riscritto?, come posso fare per riscrivere il file ogni volta che faccio un nuovo aggiornamento?
     
    A criric piace questo elemento.
  6. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    il parametro "w" indica alla funzione che deve sovrascrivere il file esistente, il parametro "0755" indica alla funzione chmod di dare i permessi di scrittura al file.
    Se il tuo vecchio menu.php non ha i permessi di scrittura devi darglieli oppure eliminalo/rinominalo e ricrealo direttamente con lo script.
     
  7. giannit

    giannit Nuovo Utente

    Registrato:
    30 Marzo 2017
    Messaggi:
    31
    Mi Piace Ricevuti:
    2
    Punteggio:
    8
    Sesso:
    Maschio
    Hai perfettamente ragione, scusami, guardavo la data di creazione e non quella dell'ultima modifica. Ancora Grazie.
     
Sto caricando...

Condividi questa Pagina