Автор Тема: Почему не работает?  (Прочитано 10508 раз)

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

Оффлайн agressor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Почему не работает?
« : 07 Июня 2003, 20:46:57 »
Задумка, сделать шаблоны без ООП
Ну написал небольшую программу, но работает не так как нужно: выводит весь цикл одинаковую первую строку, находящуюся в файле, в чем дело:confused:

<?php
$data 
file ("he.txt"); //файл-база
$temp file ("he.htm"); //файл-шаблон, содержимое писать не буду, там только теги и три переменных "%....%"
for ($i 0$i sizeof ($data); $i++) {
list (
$name$message$email) = split (":::"$data[$i]);
for (
$n 0$n sizeof ($temp); $n++) {
$temp[$n] = str_replace ("%name%"$name$temp[$n]);
$temp[$n] = str_replace ("%message%"$message$temp[$n]);
$temp[$n] = str_replace ("%email%"$email$temp[$n]);
echo 
"$temp[$n]";
}
echo 
"<p><b>$i</b><p>";
}
?>

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #1 : 07 Июня 2003, 21:52:43 »
короче, не углубляясь в подробности, скажу просто как исправить:

используй вместо ф-ции file() ф-цию get_file_contents() ...

если интересно почему выводит только первую строку, см. на возвращаемый результат ф-ции file() ;)
« Последнее редактирование: 07 Июня 2003, 22:05:41 от D1g174LM4n14c »
Мы такие!

Оффлайн agressor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #2 : 08 Июня 2003, 12:08:55 »
у меня функцию get_file_contents пхп вообще не поддерживает :-(

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #3 : 08 Июня 2003, 14:04:33 »
ставь новую версию!

или юзай так:
$data = join(\'\', file(\'somefile\'));
Мы такие!

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #4 : 08 Июня 2003, 17:54:08 »
Цитировать
[$data = join(\'\', file(\'somefile\'));

за это руки отрывать надо.

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Почему не работает?
« Ответ #5 : 08 Июня 2003, 19:37:59 »
Цитировать
agressor:
Задумка, сделать шаблоны без ООП

Есть у меня один знакомый, так он на подобное говорит сразу:
А смысл? не пойму, что лень разобраться, как РНР работает с классами, объектами?
работа в Украине

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Почему не работает?
« Ответ #6 : 08 Июня 2003, 21:41:15 »
Цитировать
RomikChef:
за это руки отрывать надо.

Как вариант :)


$data 
readfile(\'file.txt\')
Мне тормоз послужил толчком...

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #7 : 08 Июня 2003, 22:59:08 »
Neter
за это надо просто написать echo $data;

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Почему не работает?
« Ответ #8 : 08 Июня 2003, 23:46:13 »
RomikChef :(
Забыл что readfile сразу выводит содержимое файла и возвращает количество байт..


$filename 
"fie.txt"
$fp fopen ($filename"r"); 
$content fread ($fpfilesize ($filename)); 
fclose($fp);
Мне тормоз послужил толчком...

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #9 : 09 Июня 2003, 01:01:03 »
Цитировать
Neter:
$filename = "fie.txt";
$fp = fopen ($filename, "r");
$content = fread ($fp, filesize ($filename));
fclose($fp);


в зависимости от размера файла этот код может работать в десятки раз быстрее, чем имплод файла.

Оффлайн D1g174LM4n14c

  • 1m
  • Постоялец
  • ***
  • Сообщений: 137
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #10 : 09 Июня 2003, 11:32:47 »
Цитировать
RomikChef:
$data = join(\'\', file(\'somefile\'));

за это руки отрывать надо.

почему?
Мы такие!

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #11 : 09 Июня 2003, 11:46:14 »
в десятки.
то есть - в двадцмть, тридцать, сорок раз.
то есть, не сорок секунд, к примеру, а одну секунду.

понятно, или все еще нет?

Оффлайн agressor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #12 : 09 Июня 2003, 12:06:00 »
Но дело все в том, что что с fread (), что с file(), все равно весь цикл выводится данные из $data[0]...
А при чем здесь join (), как это может помочь?

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
Почему не работает?
« Ответ #13 : 09 Июня 2003, 13:28:38 »
agressor,

$data 
file ("he.txt"); //файл-база 

$fp fopen ("he.htm""r"); 
$content fread ($fpfilesize ($filename)); 
fclose($fp);

for (
$i 0$i sizeof ($data); $i++) { 
list (
$name$message$email) = split (":::"$data[$i]); 

$temp str_replace ("%name%"$name$temp); 
$temp str_replace ("%message%"$message$temp); 
$temp str_replace ("%email%"$email$temp);

echo 
"$temp";

echo 
"<p><b>$i</b><p>"

Мне тормоз послужил толчком...

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

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Почему не работает?
« Ответ #14 : 09 Июня 2003, 15:22:35 »
Нетер, если я не ошибаюсь, это работать не будет.

надо темп каждый раз присваивать

 

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