Автор Тема: Ограничения ?  (Прочитано 5583 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sigma

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ограничения ?
« : 21 Января 2004, 17:00:09 »
вот есть так штука скажем

$fh1 = fopen ("text1.txt", "r");
while (!feof($fh1)) :
$text1 = fgets($fh1);
endwhile;
fclose($fh1);

$fh2 = fopen ("text2.txt", "r");
while (!feof($fh2)) :
$text2 = fgets($fh2);
endwhile;
fclose($fh2);

$fh3 = fopen ("text3.txt", "r");
while (!feof($fh3)) :
$text3 = fgets($fh3);
endwhile;
fclose($fh3);
?>

Вот есть такая штука, всё вроде ок, но почему-то когда я хочу вывести print "$text1"; print "$text2" и т.п. выводится только первая ? За раз только одну типа можно ? :)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Ограничения ?
« Ответ #1 : 21 Января 2004, 17:15:18 »
покажи как выводишь.

ЗЫ

<?
$text1 file_get_contents("text1.txt");
$text2 file_get_contents("text2.txt");
$text3 file_get_contents("text3.txt");
echo 
$text1."
"
.$text2."
"
.$text3;
?>
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Sigma

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ограничения ?
« Ответ #2 : 21 Января 2004, 17:31:30 »
вывожу просто
print "$text1";
print "$text2";
print "$text3";

а вот предложенный пример просит функцию file_get_contents :(

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Ограничения ?
« Ответ #3 : 21 Января 2004, 17:56:18 »
Цитировать
а вот предложенный пример просит функцию file_get_contents
значит у тебя ПХП старый (эта функция в 4.3.0 появилась).
Может последние два файла не читаются. Какой режим вывода ошибок ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Sigma

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ограничения ?
« Ответ #4 : 21 Января 2004, 18:22:39 »
в смысле какой режим ? в начале кода стоит

ini_set(\'display_errors\', \'On\');
error_reporting(E_ALL)
?>

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Ограничения ?
« Ответ #5 : 21 Января 2004, 18:45:50 »
$text1="";
$fh1 fopen ("text1.txt""r");
while (!
feof($fh1)) :
$text1 .= fgets($fh1);
endwhile;
fclose($fh1);
ну, будем исповедоваться?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Ограничения ?
« Ответ #6 : 21 Января 2004, 18:50:25 »
Странно. А в файлах вообще текст есть ? может пустые они ?

PS
ну и как вариант:
 <?
$fh1 fopen ("text1.txt""r");
$text1 fgets($fh1filesize(\'text1.txt\'));
fclose($fh1);

$fh2 = fopen ("text2.txt", "r");
$text2 = fgets($fh2, filesize(\'text2.txt\'));
fclose($fh2);

$fh3 = fopen ("text3.txt", "r");
$text3 = fgets($fh3, filesize(\'text3.txt\'));
fclose($fh3);

echo $text1."
".$text2."
".$text3;
?>
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Sigma

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ограничения ?
« Ответ #7 : 21 Января 2004, 19:26:21 »
с файлами всё ок, предложенный вариант с file_get_contents замечательно работает, просто на сервере php 4.0.какой-то :(

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Ограничения ?
« Ответ #8 : 21 Января 2004, 19:43:16 »
Sigma
Советую в блок объявления функций вставить вот такую штуку:
if (!function_exists(\'file_get_contents\'))
{
	
function file_get_contents ($filename)
	
{
	
	
if (!file_exists($filename) || !is_readable($filename))
	
	
{
	
	
	
return FALSE;
	
	
}
	
	

	
	
$fp = fopen($filename, \'rb\');
	
	
$content = fread($fp, filesize($filename));
	
	
fclose($fp);
	
	
return $content;
	
}
}

Таким образом, если скрипт сможет работать и на старой версии PHP, где функции [p]file_get_contents[/p] нету.
Домашнее задание: написать функцию [p]file_put_contents[/p], которая появится в PHP5.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Sigma

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ограничения ?
« Ответ #9 : 21 Января 2004, 19:55:27 »
предложенный вариант работает, спасибо всем :)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Ограничения ?
« Ответ #10 : 21 Января 2004, 21:01:28 »
Sigma
но ты хоть понял, почему у тебя в переменных только последняя строчка оказывалась? :-)

А что лучше файл читать целиком, а не по чайной ложке?

Оффлайн Sigma

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ограничения ?
« Ответ #11 : 21 Января 2004, 23:57:30 »
неа :)

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Ограничения ?
« Ответ #12 : 22 Января 2004, 00:16:54 »
Функция [p]fgets[/p] получает из файла только одну строчку.
Вызвал ты функцию в первый раз - получил первую строчку, во второй - вторую и т.д.
Если делать твоим способом, то fgets нужно было использовать в цикле:
$buffer = \'\';
while (!feof($fp))
{
    $buffer .= fgets($fp, 4096);
}
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Ограничения ?
« Ответ #13 : 22 Января 2004, 00:20:07 »
что - даже второе?
неужели из банки в стакан быстрее чайной ложкой черпать, а не стаканом сразу зачерпнуть? Неужели это не очевидно?

А первое - ты же, черпая ложкой, в стакан не наливаешь.
Ты каждый раз набираешь в ложку, на место предыдущей, не накапливаешь. вот и есть в каждый момент не все, что начерпал, а последняя зачерпнутая ложка.

Оффлайн Sigma

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 35
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ограничения ?
« Ответ #14 : 22 Января 2004, 00:37:55 »
нет ну второе-то очевидно :)
После примера Freespace ясно и первое - сенкс :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28