PHP Добавить строку в строку 2 - PullRequest
0 голосов
/ 17 декабря 2011

Я хочу добавить строку (значение элемента DOM - $entry = stripslashes($_GET["nameofmytextarea"]);) во вторую строку myfile.csv (чтобы не удалять заголовок).

Мне все равнонасчет CSV, все уже отформатировано.Просто обработайте его как текстовую строку, добавляемую в текстовый файл.

Я не хочу ничего сложного, просто пропустите первую строку и «добавьте» над второй строкой: под заголовком, но над всеми остальнымиЛинии CSV.

Как трудно это может быть?

Ответы [ 2 ]

3 голосов
/ 17 декабря 2011
$contents = explode("\n", file_get_contents('myfile.csv'), 2);
file_put_contents('myfile.csv', $contents[0]."\n".$entry."\n".$contents[1]);

Это должно работать, если строки разделены unix-lineendings.
Если файл сначала выглядит следующим образом:

header
content
content2

и код запускается с $entry = 'test';, он будетвыглядеть так потом:

header
test
content
content2
0 голосов
/ 17 декабря 2011

Комбинация file() и array_splice() - вот что вам нужно здесь:

function prepend_to_csv ($file, $line) {
  if (!$data = file($file)) {
    return FALSE;
  }
  array_splice($data, 1, 0, $line.PHP_EOL);
  return (bool) file_put_contents($file, $data);
}

if (prepend_to_csv('myfile.csv', "this,is,some,data")) {
  echo 'Success';
} else {
  echo 'Fail';
}

Из-за того, как работает этот метод, вам нужночтобы вы вручную добавили EOL в новую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...