3

I'm a little stuck attempting to prepend this document with PHP. Please see below for the code itself.

<?php

if(isset($_POST['inputTitle']) && isset($_POST['inputDate']) && isset($_POST['inputLink'])) {
      $data = "<item>" . "\r\n" . "<title>" . $_POST['inputTitle'] . "</title>" . "\r\n" . "<description>" . $_POST['inputDate'] . "</description>" . "\r\n" . "<link>" . $_POST['inputLink'] . "</link>" . "\r\n" . "</item>" . "\r\n" . "\r\n";
    $ret = file_put_contents('filename.rss', $data, FILE_APPEND | LOCK_EX);
    if($ret === false) {
        die('There was an error writing this file');
    }
    else {
        echo "<b>Thank you for adding a news item.</b> <br />";
        echo "If this news item does not appear on the application, please contact IT Support including a screenshot of this webpage. <br />";
        echo "<br />";
        echo "<br />";
        echo "###################### <br />";
        echo "$ret bytes written to file. <br />";
        echo "###################### <br />";

    }
}
else {
   die('no post data to process');
}   
?> 

This code currently works for writing to the bottom of a file, but I'd like to add to the top of it.

I'm essentially creating an RSS feed manually, and with my iOS application it sorts them from top to bottom as it reads them.

  • Then get the contents of the file via `file_get_contents` and later add it to the top of it? – Ilgıt Yıldırım May 08 '15 at 10:27
  • possible duplicate of [How do I prepend file to beginning??](http://stackoverflow.com/questions/3332262/how-do-i-prepend-file-to-beginning) – Sak90 May 08 '15 at 10:31

1 Answers1

1

If I understood you correctly and if you want to add content to the top of your file, you'd need to get the contents of it first;

$content = file_get_contents("filename.rss");

Once you have the contents you can create new content like this;

$data = "<item>" . "\r\n" . "<title>" . $_POST['inputTitle'] . "</title>" . "\r\n" . "<description>" . $_POST['inputDate'] . "</description>" . "\r\n" . "<link>" . $_POST['inputLink'] . "</link>" . "\r\n" . "</item>" . "\r\n" . "\r\n";

$content = $data.$content;

Later save the file;

$ret = file_put_contents("filename.rss", $data, LOCK_EX);

Shortly replace this line;

$ret = file_put_contents('filename.rss', $data, FILE_APPEND | LOCK_EX);

With this;

$content = file_get_contents("filename.rss");
$ret = file_put_contents("filename.rss", $data.$content, LOCK_EX);