Per i miei corsi PHP, devo creare un blocco note che inizia con un testo di esempio, quando lo modifico e clicco sul pulsante Salva, il testo all'interno del file viene modificato e salvato. Quindi se aggiorno la mia pagina/apro direttamente il file ho il nuovo contenuto modificato dall'utente visualizzato.Spazio inatteso all'inizio del file
Funziona, ma ho uno spazio inaspettato nel mio file.
Se metto al primo carattere nella prima riga "testo di esempio", io non vedrò "testo di esempio", ma invece:
sample text
E questo è solo per la prima linea , che cosa succede se ho modificato il file manualmente o con la mia pagina. Tutte le righe successive iniziano dai primi caratteri.
Di seguito il mio file notes.txt (dove i miei appunti sono) dopo una modifica dalla pagina web:
Mes jeux préférés: => Fallout 3 => Natural Selection 2 = 2; L4D2
non vedo alcun carattere strano, all'inizio del file.
index.php:
<?php
define('FICHIER_DE_NOTES', 'notes.txt');
$fichier = fopen(FICHIER_DE_NOTES, 'r+');
if (array_key_exists('note', $_POST)) {
$note = filter_var($_POST['note'], FILTER_SANITIZE_SPECIAL_CHARS);
ftruncate($fichier, 0);
fseek($fichier, 0);
fputs($fichier, $note);
$updateMessage = 'Vos notes ont été sauvegardés!';
} else {
$note = '';
while ($ligne = fgets($fichier)) {
$note = $note . $ligne;
}
}
fclose($fichier);
include 'index.phtml';
?>
E il mio index.phtml:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Bloc Note</title>
</head>
<body>
<h1>Bloc Note</h1>
<form method="post" action="index.php" >
<p>Voici votre bloc note. Ajoutez-y du texte et cliquer sur "Sauvegarder".</p>
<textarea id="textarea" name="note" rows="16" cols="50">
<?= $note ?>
</textarea>
<br/><br/>
<label>
<input type="submit" value="Sauvegarder">
</label>
<?php if (isset($updateMessage)) {
echo $updateMessage;
} ?>
</form>
</body>
</html>
io uso vim e PHP5.
Dimmi se hai bisogno di ulteriori informazioni.