Jag behöver hjälp med hur man enkelt uppdaterar text på en hemsida utan att använda sig av HTML eller exempelvis Dreamweaver. Vet att det finns ett sätt där man skriver in texten i ett textdokument (php) som är länkat till HTML-sidan. Någon som vet hur man gör detta på enklaste sätt?
Uppdatera text med PHP
12 svar · 592 visningar · startad av Brago
Du kan göra något sånt här:
...
<body>
<?
$filnamn = "textfil.txt";
$filen = fopen($filnamn, "r");
$text = fread($filen, filesize($filnamn));
print $text;
?>
</body>
...
Detta läser filen textfil.txt som ligger i samma katalog som denna fil, och skriver ut det.
Tack. Verkar busenkelt ju. Ska hem å testa det ikväll. Men hur funkar det med radbryt och så? kan man använda sig av br-taggar i txt-filen eller?
Ändra raden till print nl2br($text) om du vill omvanda alla vanliga radbrytningar till BR'taggar. Annars får du skriva BR'taggar i textfilen.
<?php bör användas istället för bara <?
Det är inte säkert att <? fungerar överallt. <? används oxå för <?xml så det finns risk för feltolkningar ...
Tack för alla tips men jag får det inte att fungera. Vad kan jag göra för fel? Har gjort en html-fil med denna kod och sedan en textfil som ligger i samma mapp som heter textfil.txt
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
[php]<?php
$filnamn = "textfil.txt";
$filen = fopen($filnamn, "r");
$text = fread($filen, filesize($filnamn));
nl2br($text);
?>[/php]
</body>
</html>
ändra till...
echo nl2br($text);
Säg gärna vad som är fel, och ev felmeddelande istället för nåt i stil med "det fungerar inte"
Jag är inte alls speciellt bra på detta med PHP men jag vet att man kan få fram felmeddelanden ibland. Nu är html-sidan bara vit med ingenting på. Behöver jag göra något mer än html-filen och txt-filen? En php-fil?
och vad betyder:
$filen = fopen($filnamn, "r");
Tack på förhand
Du måste göra om själva HTML-sidan till .php-format (vilket jag antar att du redan gjort)
r/ Sedan måste du även fylla textdokumentet med nån info, annars säger den nåt i stil med att värdet måste vara större än 0 tror jag.
Brago skrev:
vad betyder:
$filen = fopen($filnamn, "r");
fopen öppnar filen som ska läsas, r anger att filen endast får läsas. Hade det t.ex stått r+ så får filen läsas och skrivas till.
r/ Lägger med en länk till manualen
http://se.php.net/manual/sv/function.fopen.php
Länka scriptet till ett formulär
Tack Cristian! Nu funkar det. Hade glömt att döpa filen till .php textfilen hade jag dock redan fyllt med text.
Tack Pedda! Bra där med länken till manualen också. Har blivit tipsad om den förut av en kompis. Den verkar ju grymt komplett men det gäller verkligen att man vet vad man söker efter för att slå i den känns det som.
En sak jag skulle villja göra nu är att koppla detta till ett formulär som skickar informationen till text-filen eller liknande så man slipper ladda upp textfilen på nytt via FTP när man ändrat något. Blir ju smidigare så. Är detta krångligt. Kan man hitta det i manualen någonstans?
Ett alternativ till att använda fopen och fread är file. Gör inte så stor skillnad kanske men ändå. :)
Formulär för att uppdatera:
<html>
<body>
<form name="theForm" action="uppdatera.php" method=post>
<textarea name="nytext" cols=10 rows=80></textarea>
<input type=submit value="uppdatera">
</form>
</body>
</html>
Fyll ut med annan kod runt omkring för att få det som du vill. Gör sedan filen uppdatera.php
<?php
$nytext = $_POST["nytext"];
$filnamn = "textfil.txt";
$filen = fopen($filnamn, "w");
fwrite($filen, $nytext);
fclose($filen);
?>
Notera att detta kommer ta bort existerande text i filen. Vill du bara lägga till sist i filen får du ändra fopen($filnamn, "w") till fopen($filnamn, "a")