Dla moich kursów PHP muszę stworzyć notatkę, która zaczyna się od przykładowego tekstu, kiedy edytuję go i klikam przycisk zapisu, tekst wewnątrz pliku jest edytowany i zapisywany. Więc jeśli odświeżam swoją stronę/otwieram plik bezpośrednio, mam nową treść edytowaną przez użytkownika.Nieoczekiwana przestrzeń na początku pliku
Działa, ale mam nieoczekiwane miejsce w moim pliku.
Jeśli mogę umieścić na pierwszy znak w pierwszym wierszu „przykładowy tekst”, nie zobaczymy „przykładowy tekst”, ale w zamian:
sample text
I to tylko na pierwszej linii , jeśli kiedykolwiek edytowałem plik ręcznie lub na mojej stronie. Wszystkie następne linie zaczynają się od pierwszych znaków.
Poniżej mój plik notes.txt (gdzie moje notatki są) po dokonaniu edycji ze strony internetowej:
Mes jeux préférés: => Fallout 3 => Natural Selection 2 = 2; L4D2
ja nie widzę żadnego dziwny znak w na początku pliku.
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';
?>
A moja 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>
używam vim i PHP5.
Powiedz, czy potrzebujesz więcej informacji.