Я сохраняю только последнее имя пользователя в текстовом файле вместо всего списка - PullRequest
2 голосов
/ 09 февраля 2012

Следующий код выводит на экран список имен пользователей.Однако в файле fid.txt сохраняется только последнее имя пользователя.Что мне здесь не хватает?

foreach ($twitter_xml->channel->item as $key) {
$author = $key->guid;

preg_match("#http://twitter.com/([^\/]+)/statuses/.*#", $author, $matches);

print_r($matches[1]);

file_put_contents('fid.txt', $matches[1]);
}

Ответы [ 4 ]

3 голосов
/ 09 февраля 2012

Если вы не используете флаг FILE_APPEND, file_put_contents() будет открывать, записывать и закрывать файл заново каждый раз.

Попробуйте file_put_contents('fid.txt', $matches[1], FILE_APPEND);

2 голосов
/ 09 февраля 2012

file_put_contents('fid.txt', $matches[1], FILE_APPEND);

Вы перезаписываете весь файл каждый раз.

2 голосов
/ 09 февраля 2012

Вам нужно использовать file_put_contents('fid.txt', $matches[1], FILE_APPEND);

По умолчанию file_put_contents() перезаписывает файл при каждом вызове.

1 голос
/ 09 февраля 2012

file_put_contents перезаписывает файл по умолчанию. Измените его, чтобы использовать режим добавления, и он, вероятно, будет делать то, что вы ожидаете.

file_put_contents('fid.txt', "\n" . $matches[1], FILE_APPEND); // also added a newline to break things up

Еще лучше, вы должны добавить строку и записать в файл только один раз:

$usernames = array();
foreach ($twitter_xml->channel->item as $key) {
    // ... stuff ...
    $usernames[] = $matches[1];
}
// Save everything, separated by newlines
file_put_contents('fid.txt', "\n" . implode("\n", $usernames), FILE_APPEND);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...