|
|||
Cgi4free |
Egen söktjänst |
Erbjudanden |
Funktioner |
Gratis bilder |
Hemsidekryptering |
Posten |
Söktjänstregistrering |
JavaScript.nu
/
Perl-kurs
/
Spara och hämta filer
I Perl så hämtar och lagrar man data till filer med samma funktion - open: open(ett_namn,"filen.txt"); # Läsa filen open(ett_namn,">filen.txt"); # Skriva över filen med ny data open(ett_namn,">>filen.txt"); # Lägga till ny dataOm du vill att en subrutin ska anropas om filen inte kunde läsas av scriptet eller om man inte kunde skriva till filen så går även detta. Detta script visar hur: $filnamnet="filen.txt"; # Om vi använder en variabel så behöver vi inte # skriva om filen.txt varje gång det ska användas # i scriptet. Dessutom, om vi senare vill byta filen.txt mot en # annan fil så ändrar vi endast här, inte på alla ställen i scriptet sub fel { print "Content-type:text/html\n\n"; print "$filnamnet kunde inte öppnas"; } open(ett_namn,"$filnamnet") || &fel; #Om något går på tok anropas subrutinen felVi ska nu göra ett script som hämtar en fil från servern och skickar den till besökaren. #!/usr/bin/perl print "Content-type:text/html\n\n"; $filen="en_fil.txt"; # Denna fil ska hämtas open (htmlfil,"$filen") || &fel; # Öppnar filen för läsning, om detta misslyckas anropas subrutinen fel @alla_rader=<htmlfil>; # @alla_rader skapas. Värdena är var rad i filen en_fil.txt foreach $rad (@alla_rader) # Går igenom alla värden i @alla_rader { print $rad; # Skriver ut en_fil.txt, rad för rad } close(htmlfil); # Stänger filen en_fil.txt sub fel { print "Tyvärr kunde inte <A HREF=\"$filen\">$filen</A> hämtas."; }Nu ska vi göra ett än mer avancerat script, nämligen ett script som skapar en fil med en viss information och som sedan skickar iväg besökaren till sidan. #!/usr/bin/perl $filen="hemsida.html"; # Filen namn, om man vill ändra ändrar man bara här open (minfil,">$filen") || &skapades_inte; # Öppnar filen (i vårt fall skapas filen) och skriver över data print minfil "<HTML><HEAD><TITLE>$filen</TITLE></HEAD>"; # Information skrivs till filen på detta sätt print minfil <<STOP; # Eller på detta sätt... Allt fram till STOP lagras, även radbytena <BODY> <H1>$filen skapades av ett Perl-script</H1> <P> Hejsan hoppsan.... </BODY> </HTML> STOP #Ovan finns "STOP". Om denna kommentar skrivs på raden ovan får vi fel. close(minfil); # Filen stängs print "Location: $filen\n\n"; # Skickar iväg besökaren till $filen (i vårt fall hemsida.html) sub skapades_inte # Om filen inte skapas körs denna subrutin { print "Content-type:text/html\n\n"; print "Det gick inte att skapa $filen."; }Nu har du lärt dig såväl att ta emot data från formulär som lagra denna i filer. Du kan nu alltså skapa alla former av gästböcker, anslagstavlor, röstningsscript etc. Användaren fyller i data i några fält som skickas till ett script som lagrar denna i en fil. Ett annat script kan sedan läsa av den fil som man sparat data till och visa denna för besökaren. Även om du nu tycker det fortfarande är svårt så beror det på att du precis har lärt dig detta, testa med att göra några script själv och du kommer att se att det är mycket lätt att skapa, spara och hämta filer.
Nu när du läst detta kapitel kanske du undrar vad som menas med
att scriptet inte lyckas hämta eller spara en fil.
Exempel på fel kan vara att scriptet försöker läsa en fil som inte finns
eller att scriptet försöker skriva till en fil den inte har rättighet att
skriva till.
Kom dock ihåg, vissa servrar ger automatiskt en viss lämplig rättighet åt
filerna på servern, andra tillåter dig inte ens att sätta rättigheterna på vissa
sätt. På många servrar har filerna från början rätt att såväl läsa och
skriva till filerna, därför bör du innan du försöker att CHMOD:a
filerna testa och se om filerna från början är rätt inställda eller inte
(t.ex. genom ett script som skriver något till en fil och sedan läser av det.
Om det gick så är allt OK, annars behöver du CHMOD:a scriptet).
Copyright © Omid Rouhani 1997-2022; Alla rättigheter reserverade. Guider: [ HTML guide ] - [ JavaScript guide ] - [ DHTML guide ] - [ Perl guide ] - [ Sitemap ] |