[PHP] Creare pagina con collegamenti ipertestuali da file txt

giannit

Nuovo Utente
30 Mar 2017
31
2
8
59
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
 
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 % 2 == 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/>";
}
 
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:
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);
 
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?
 
  • Like
Reactions: criric
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.
 
Hai perfettamente ragione, scusami, guardavo la data di creazione e non quella dell'ultima modifica. Ancora Grazie.
 

Discussioni simili