2016-06-28 15 views
6

Đối với các khóa học PHP của tôi, tôi phải tạo một ghi chú bắt đầu bằng văn bản mẫu, khi tôi chỉnh sửa và nhấp vào nút lưu, văn bản bên trong tệp được chỉnh sửa và lưu. Vì vậy, nếu tôi làm mới trang của mình/mở tệp trực tiếp, tôi có nội dung mới do người dùng hiển thị chỉnh sửa.Không gian bất ngờ ở đầu tệp

Tính năng này hoạt động nhưng tôi có một số khoảng trống không mong muốn trong tệp của mình.

Nếu tôi đặt tại ký tự đầu tiên trên dòng đầu tiên "mẫu văn bản", tôi sẽ không nhìn thấy "văn bản mẫu" mà thay vào đó:

 sample text 

Và đó là chỉ dành cho các dòng đầu tiên , những gì đã bao giờ nếu tôi chỉnh sửa các tập tin bằng tay hoặc với trang của tôi. Tất cả các dòng tiếp theo bắt đầu từ các ký tự đầu tiên.

Dưới tập tin của tôi notes.txt (nơi ghi chú của tôi là) sau khi chỉnh sửa từ trang web:

Mes jeux préférés:
 => Fallout 3
 => Natural Selection 2
 =&#6 2; L4D2 

Tôi không thấy bất kỳ ký tự lạ trong lúc bắt đầu của tập tin.

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'; 
?> 

Và index.phtml của tôi:

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

tôi sử dụng vim và PHP5.

Hãy cho tôi biết nếu bạn cần thêm thông tin.

Trả lời

1

Hoặc cập nhật html của bạn:

<textarea id="textarea" name="note" rows="16" cols="50"><?php echo $note ?></textarea> 

Hoặc trong kịch bản php của bạn:

if (array_key_exists('note', $_POST)) { 
    $_POST['note'] = trim($_POST['note']); //added this line 
    $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; 
    } 
} 
5

Khoảng trắng đến từ HTML của bạn:

<textarea id="textarea" name="note" rows="16" cols="50"> 
    <?= $note ?> 
</textarea> 

Bạn nên sử dụng như sau:

<textarea id="textarea" name="note" rows="16" cols="50"><?php echo $note ?></textarea> 
3

này đang xảy ra vì không gian màu trắng thêm trong thẻ của tập tin HTML của bạn:

<textarea id="textarea" name="note" rows="16" cols="50"> 
     <?= $note ?> 
    </textarea> 

Cố gắng làm như:

<textarea id="textarea" name="note" rows="16" cols="50"><?= $note ?></textarea>