[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Пройтись циклом for в файле(Помогите)
Страницы: 1, 2
Initro
Всем привет, я только не давно начал работать с php, сам принцип программирования знаю.
Вот мне нужно чтобы открыть файл и по очереди считывать строку и выводить ее на экран(точнее сохранять в переменную).
Мне нужно чтоб не все сразу!а по одному(при обновлении не с нуля начался отсчет(в for) а с того,где остановился)

Вот, что я смог сделать:

<?php
//Подсчет кол-во строк
$mass = file("http://gamecode.hol.es/reklama.txt");
$cou=count($mass);
echo "Кол-во строк: $cou. <br/>";
//Открытие файла
$fp=fopen('http://gamecode.hol.es/reklama.txt ','r');
if ($fp)
{
for($x=0;$x<$cou+1;$x++)
{
$pngurl[$x]=fgets($fp);
echo $pngurl[$x]. "<br/>";
}
}

else echo 'Ошибка при открытии файла';
fclose($fp);
?>

Буду благодарен, если поможете!
T1grOK
Бессмыслица какая-то $mass уже содержит данные файла, зачем его еще раз читать с помощью fgets.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Initro
T1grOK, я же в php новичок))не все функции хорошо до понимаю как они работают...
Bolik

$mass = file("http://gamecode.hol.es/reklama.txt", FILE_IGNORE_NEW_LINES);
for($i=0, $i<count($mass); $i++){
echo $mass[$i].'<br/>';
}

и все)
Initro
Цитата (Bolik @ 26.06.2014 - 22:06)

$mass = file("http://gamecode.hol.es/reklama.txt", FILE_IGNORE_NEW_LINES);
for($i=0, $i<count($mass); $i++){
  echo $mass[$i].'<br/>';
}

и все)

Не то ;)
1.вот допустим считали одну строку
2.Когда обновили считали другую строку вместо этой),чтобы не пополнялся список вниз в echo.
Чтобы отображалась одна строка,но с другими данными,а эти данные будут браться с файла.

P.S. надеюсь так понятнее разъяснил...
Bolik
пиши счетчик в файл, если удобно работать с файлами

$counter=fopen("counter.txt", "r+");
$mass = file("http://gamecode.hol.es/reklama.txt", FILE_IGNORE_NEW_LINES);
for($i=0; $i<count($mass); $i++){
$var=file_get_contents("counter.txt");
if ($i==$var) {
echo $mass[$i];
fwrite ($counter, $i+1);
}
}

Initro
Цитата (Bolik @ 26.06.2014 - 23:44)
пиши счетчик в файл, если удобно работать с файлами

$counter=fopen("counter.txt", "r+");
$mass = file("http://gamecode.hol.es/reklama.txt", FILE_IGNORE_NEW_LINES);
for($i=0; $i<count($mass); $i++){
$var=file_get_contents("counter.txt");
if ($i==$var) {
echo $mass[$i];
fwrite ($counter, $i+1);
}
}


Почему,когда открываю php файл, сразу в одну строку выводиться две строки, а когда обновляю цифры 111.
Всего 7-10 строк в файле...
Bolik
сорри, добавь

$counter=fopen("counter.txt", "r+");
$mass = file("http://gamecode.hol.es/reklama.txt", FILE_IGNORE_NEW_LINES);
for($i=0; $i<count($mass); $i++){
$var=file_get_contents("counter.txt");
if ($i==$var) {
echo $mass[$i];
fwrite ($counter, $i+1);
exit;
}
}


и заработает
Initro
Цитата (Bolik @ 27.06.2014 - 01:14)
сорри, добавь

$counter=fopen("counter.txt", "r+");
$mass = file("http://gamecode.hol.es/reklama.txt", FILE_IGNORE_NEW_LINES);
for($i=0; $i<count($mass); $i++){
$var=file_get_contents("counter.txt");
if ($i==$var) {
echo $mass[$i];
fwrite ($counter, $i+1);
exit;
}
}


и заработает

Спасибо тебе огромное!
а вот чтобы его обнулять вот,мне лучше очистить файл счетчика или прированять $i=0?
Initro
Короче как сделать чтобы, он не останавливался, а чтобы шел по кругу
я сделал вот так:
if ($i=count($mass))
{
$f = fopen('counter.txt', 'w+');
fclose($f);
}


Но в конце, как будто добавляет одну пустую строку
Bolik

if ($i==count($mass))
{
fwrite ($counter, '0');
}


когда доходишь до последней строчки, просто пиши 0 в счетчик. чтоб скрипт не прерывался, проще всего написать функцию:


function showAd ($var=FALSE) {
$counter=fopen("counter.txt", "r+");
$mass = file("http://gamecode.hol.es/reklama.txt", FILE_IGNORE_NEW_LINES);
for($i=0; $i<count($mass); $i++){
$var=($var) ? $var : file_get_contents("counter.txt");
if ($i==$var) {
if ($i==count($mass)) {
fwrite ($counter, '0'); //обнуляем счетчик
return $mass[$i]; //возвращаем нужную строчку
}
fwrite ($counter, $i+1);
return $mass[$i]; //возвращаем нужную строчку
}
}
}


как опциональный параметр можешь задать номер строчки, которую нужно вывести. думаю принцип понятен)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.