webForumDet fria alternativet

Uppdatera text med PHP

12 svar · 592 visningar · startad av Brago

BragoMedlem sedan nov. 200415 inlägg
#1

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?

pettssonMedlem sedan jan. 20021 122 inlägg
#2

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.

BragoMedlem sedan nov. 200415 inlägg
#3

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?

Kent.JMedlem sedan aug. 2001153 inlägg
#4

Ä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.

sl0kMedlem sedan maj 2005562 inlägg
#5

<?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 ...

BragoMedlem sedan nov. 200415 inlägg
#6

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>
Kent.JMedlem sedan aug. 2001153 inlägg
#7

ä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"

BragoMedlem sedan nov. 200415 inlägg
#8

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

ChristianSMedlem sedan dec. 2004290 inlägg
#9

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.

PeddaMedlem sedan juni 20006 032 inlägg
#10

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

BragoMedlem sedan nov. 200415 inlägg
#11

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?

akkeakkerMedlem sedan jan. 200327 inlägg
#12

Ett alternativ till att använda fopen och fread är file. Gör inte så stor skillnad kanske men ändå. :)

pettssonMedlem sedan jan. 20021 122 inlägg
#13

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")

256 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
128 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
132 ms — hämta tråd, inlägg och bilagor (db)