|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
[Generico] Pagina web che mostra e modifica files su disco
Salve a tutti,
ho un server Linux sul quale ho la seguente esigenza: leggere il contenuto di un file, mostrarlo a video, apportarne delle modifiche, renderle permanenti su disco e lanciare uno scriptino in bash. Sono disposto a usare diversi linguaggi (PHP,Python,Jsp,HTML), però non so bene come cominciare. Nello specifico, dovrei aprire un file, contenente una lista di URL e mostrarlo a video. Questa lista deve poter essere modificabile, ovvero si devono poter aggiungere/rimuovere URL e una volta fatto questo si deve rendere permanente la modifica su disco. Successivamente, come dicevo prima è necessario che si avvii uno script. Come potrei fare? Qualcuno mi da degli spunti su come iniziare? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
Idea buttata così, potrebbero esserci errori.
Per visualizzare/modificare/eliminare righe - Fai qualche controllo per vedere se il file esiste, è leggibile e scrivibile - Apri il file leggendo il contenuto di ogni riga in un array - Dentro un form, cicli l'array e crei un textbox con il contenuto della riga (l'url), un id (magari l'url se univoco) più un pulsante per rimuovere la riga Per aggiungere: - Crei un bottone "generale" aggiungi che aggiunge una texbox per inserire un altro url. Per salvare: - un pulsante salva per salvare le modifiche, ossia aggiorni il contenuto dell'array con i valori che ti arrivano dalle textbox e riscrivi l'array nel file interamente. consigli: - il pulsante per far comparire un textbox io lo farei con javascript modificando il dom. Se fai fare un post, devi fare dei controlli per capire quale pulsante è stato premuto. E inoltre facendo il refresh della pagina, devi prevedere un meccanismo per salvare le altre textbox eventualmente modificate - il pulsante rimuovi sarà problematico, perchè allo stesso modo dovrai salvare (nella sessione?) eventuali modifiche che l'utente ha fatto altre righe.. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
Scusa ho letto adesso che probabilmente non devi modificare le righe ma solo aggiungere e rimuoverle...
![]() ![]() Infatti: - pulsante rimuovi riga fa un post, rimuove dall'array e riscrive l'array nel file - pulsante aggiungi riga (con relativo textbox) aggiunge nell'array e lo riscrive nel file Non ti servono pulsanti salva, ma devi tenere in considerazione il caso in cui due utenti modificano questa lista contemporaneamente... Ciao ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Grande, ti ringrazio.
L'idea mi piace. Appena posso inizio a buttare giù qualche riga di codice. Per quanto riguarda l'accesso concorrente non c'è problema: lo usa una persona sola. Mentre rispondevo a questo post mi è venuta in mente un'altra idea. Siccome sono molto più ferrato in Java che in altri linguaggi, una Servlet o una JSP, come la vedi? |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Anche GWT magari...
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Google API, mi sembra di capire...
Mmh, no vorrei evitare di usare API di web services esterni in questo caso. ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Con PHP si fa in pochi minuti
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
In ASP.net ancora di meno
![]() ![]() Curiosità: c'è un modo per capire se il file è già aperto da un altro "utente" e bloccare ogni modifica? O bisogna trovare un escamotage tipo un lock su una tabella? |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
ASP.net non lo conosco purtroppo.
PHP lo conosco poco per poterlo fare in pochi minuti!!! Comunque intanto ho buttato giù qualche riga di codice stupidissima che mi legge il file una riga alla volta: Codice:
<?php $file=fopen("urls","r"); //apre il file "urls" while (!feof($file)) { $buffer = fgets($file, 4096); echo "$buffer"; //riga letta } fclose ($file); #chiude il file ?> |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
A parte che ho qualche dubbio su questa affermazione (con questo non voglio dire che php è meglio di Asp.Net, ma sicuramente è più "sbrigativo" per progetti brevi e sopratutto per progetti di questo tipo), ma gli serviva Linux.
Ultima modifica di cionci : 29-05-2010 alle 13:33. |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Puoi leggere il file in una sola operazione: http://php.net/manual/en/function.file.php http://www.php.net/manual/en/functio...t-contents.php |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Quote:
|
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() <%@ Page Language="VB" Debug="true" %> <script language="VB" runat="server"> Dim Reader As New System.IO.StreamReader(Server.MapPath("Ciao.txt")) Response.Write(Reader.ReadToEnd()) Reader.Close </script> <?= file_get_contents("Ciao.txt") ?> |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
In pratica stavo pensando di caricare la lista di URL (contenuta appunto nel file) dentro un'array. Questo per facilitare l'operazione di aggiunta/rimozione delle righe (ogni riga corrisponde ad un URL). Quindi ogni volta che "do l'OK" o comunque che voglio apportare le modifiche al file, sovrascrivo il contenuto del file con il contenuto dell'array.
Io farei una pagina del genere: ogni riga un url, con un tasto rimuovi a fianco. Alla fine, una textbox con tasto aggiungi, che mi aggiorna la pagina con l'URL aggiunto, e in fondo, un bottone salva. Se c'è bisogno posso pure fare uno schema di come lo vorrei fare. |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() Ultima modifica di cionci : 29-05-2010 alle 14:01. |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per modificare il file: http://php.net/manual/en/function.file-put-contents.php
Fai un implode con tutte le righe rimanenti. Ovviamente devi togliere dal vettore le righe che vuoi rimuovere. Una cosa del genere: $content = file("prova.txt"); unset $content[$x]; //rimuovi la riga di indice $x array_push($content, $new_line."\n"); //aggiunge una riga in fondo file_put_contents("prova.txt", implode($content)); Ultima modifica di cionci : 29-05-2010 alle 14:06. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:14.