tekst schrijven naar TXT bestand op een bepaalde regel, Hoe?

Status
Niet open voor verdere reacties.

bastiaansmit94

Gebruiker
Lid geworden
13 okt 2008
Berichten
125
Hallo,

Ik ben bezig met een site aan het maken nou wil ik graag dat de tekst die wordt ingevoerd in het veld wordt opgeslagen in een txt bestand! Dit heb ik al maar nou wil ik dat hij dat niet op de eerste regel opslaat of de laatste maar op regel 12 maar hoe doe ik dat?

(ik wil graag dat als ik in het vak een lied in typ dat die dan op regel 12 van de playlist komt)


Mvg Bastiaan



Mijn script is als volgt: Dit is een demo: http://hitz-music.net16.net/value.php
PHP:
<?php
$filename = 'file.txt';

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
	$content = $_POST['content'];
	
	// Kunnen we schrijven naar het bestand?
	// Kan dit niet, dan error
	if (is_writable($filename)) {
		
		// Open het bestand
		// Kan dit niet, dan error
		if (!$handle = fopen($filename, 'w')) {
			echo "Cannot open file ($filename)";
			exit;
		}
		
		// Schrijf de tekst uit de textarea naar het bestand
		// Kan dit niet, dan error
		if (fwrite($handle, $content) === FALSE) {
			echo "Cannot write to file ($filename)";
			exit;
		}
		
		// Meld dat het schrijven is gelukt
		echo "De file is opgeslagen ($content) to file: $filename";
		
		fclose($handle);
		
	} else {
		// Error van schrijfbaarheids check
		echo "The file $filename is not writable";
	}
	
} else {
	
	// Open bestand en lees het uit, bestaat het bestand niet, dan wordt het gemaakt.
	$handle = fopen($filename, 'a+');
	
	// Controleer of er iets in file staat
	// is deze leeg dan een size van 1 geven, bij 0 krijg je namelijk error.
if(filesize($filename) > 0){$size = filesize($filename);}else{$size = 1;}

// Maak string met inhoud van bestand
$content = fread($handle, $size);
fclose($handle);
?>
<html>
<body>
<form action="<? $_SERVER['PHP_SELF']; ?>" method="POST">
<textarea name="content" style="width: 400px; height: 400px;"><?=$content;?></textarea>
<br />
<input type="submit" value="Opslaan" onClick="value='Opgeslagen!'" style="width: 400px;">

</form>
</body>
</html>
<?
}
?>
 
Laatst bewerkt:
bij fopen() heb je nu w staan, als je dat vervangt door a komt de pointer aan het eind van het bestand
 
dat is ook niet de bedoeling want aan het eind staan 3 belangrijke regels voor het inlezen van een ander script en het moet voor die regels komen te staan kan ik niet 'w+12' ofzo doen of 'a-3' ???
 
Laatst bewerkt:
Ok, dat had ik niet begrepen. In dat geval kun je met file() eerst de inhoud van het bestand lezen, op de juiste plaats de nieuwe data zetten, om het vervolgens weer te imploden en op te slaan.
 
ja dat snap ik maar ik het script moet worden gebruikt in een control panel en ik wil dus niet dat iedereen de omringende code gaat wijzigen ik wil dat ze alleen via een <input> wat kunnen in typen en dat dat dan wordt vertaald naar bijv. <input scr="WAT ZE HEBBEN GETYPT IN HET CONTROL PANEL"> </input> dat gedeelte lukt wel maar het script staat steeds deze regel op op de laatste regel van de .txt file maar dat moet niet want dan kan die andere php file de tekst niet meer lezen dus die moet 3 regels hoger komen te staan snapje?
 
Als je de hele file opent beslis je nog altijd zelf wat ze kunnen editen.

In een array kun je vrij eenvoudig iets inserten op een bepaalde regel, en daarna alles opnieuw saven. Andere gebruikers kunnen dan verder niks wijzigen, buiten wat je script toestaat.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan