RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 469
от 25.09.2006, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 365, Экспертов: 53
В номере:Вопросов: 4, Ответов: 11


Вопрос № 55993: Поясните пожалуйста как работать с flush() примеры я видел, но не совсем понял - в моем случае сайт состоит из основной и вложеных таблиц, надо вывести шапку пока формируется остальная страница К какое место надо вставлять flush()? Вообще...
Вопрос № 56037: Доброе время суток. Мне необходимо в SQL-таблице хранить записи, например о группах товарах. Группа1: id, name_name_group Группа2: id, name_name_group ….. Группа n: id, name_group (Это что-то типа дерева папок) П...
Вопрос № 56100: Приветствую вас эксперты. Такой вопрос. Какая-то непонятка получаеться с кодом. Выводит ошибку. Если я в скрипте оставлю $fr=file("komment.txt", "r") or die("Не могу открыть файл"); То выводиться ошибка php ...
Вопрос № 56104: Здравствуйте! Можете предложить что-то вроде задачника по PHP? Для улучшения навыков PHP? Маленькие задачки по разным темам, которые можно быстро выполнить. Что Вы можете рассказать про сертификацию по PHP? Заранее благодарен за любые отв...

Вопрос № 55.993
Поясните пожалуйста как работать с flush()
примеры я видел, но не совсем понял - в моем случае сайт состоит из основной и вложеных таблиц, надо вывести шапку пока формируется остальная страница
К какое место надо вставлять flush()?
Вообще нужна эта фунция если у меня gzip включен?
Отправлен: 19.09.2006, 19:17
Вопрос задал: Gammy (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Загиров Рустам
Здравствуйте, Gammy!
Немного теории: PHP отправляет файл не по символу, а определенный размер текста(по умолчанию равный 8 КБ). Сначала данные сохраняються в своеобразном "буфере", а когда заполняеться данные отправляются такими пакетами.
При вызове flush() все данные, имеющиеся в "буфере" немедленно отправляються.
Gzip подрузумевает, что сначала все данные собираються вместе, затем кодируються и отправляються. Т.е. flush() тут не будет работать.
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Загиров Рустам (статус: Практикант)
Ответ отправлен: 19.09.2006, 20:32
Оценка за ответ: 4

Отвечает: PVS
Здравствуйте, Gammy!
Если gzip включен - не нужна. То же самое касается всех настроек php.ini, которые отвечают за предварительное кеширование. flush работает только если php сразу отдает код серверу. Если Вы у себя все эти настройки выключите, то flush надо ставить после заголовка - он(заголовок) появится в броузере, а все остальное будет появлятся по мере выполнения скрипта.
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 20.09.2006, 09:54
Оценка за ответ: 4


Вопрос № 56.037
Доброе время суток.
Мне необходимо в SQL-таблице хранить записи, например о группах товарах.

Группа1: id, name_name_group
Группа2: id, name_name_group
…..
Группа n: id, name_group
(Это что-то типа дерева папок)

Подскажите способ хранения данных, чтобы при сохранении «дерева наследования групп» можно было-бы добавлять новые группы и уровень вложенности групп не имел значения. Удалять группы не планируется.

Если кто из читателей может помочь – пишите kolbinyur@mail.ru
Отправлен: 20.09.2006, 02:54
Вопрос задал: Колбин Юрий Владимирович (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Www2
Здравствуйте, Колбин Юрий Владимирович!

Группа товаров: id, parent_group_id, name_group

id - идентификатор группы
parent_group_id - идентификатор родительской группы
name_group имя группы

Придётся создать одну корневую группу, для которой идентификатор родительской группы не имеет смысла, можете назвать её "root" (корень).
---------
Нет правил без исключений, правило без исключения - это исключение из правил.
Ответ отправил: Www2 (статус: 10-ый класс)
Ответ отправлен: 20.09.2006, 08:34

Отвечает: PVS
Здравствуйте, Колбин Юрий Владимирович!
Предполагаю, что БД MySQL, иначе подправте синтаксис:

create table groups(
id_group int not null primary key autoincrement,
group_name varchar(100),
up_group int);

up_group - id группы верхнего уровня.
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 20.09.2006, 10:00


Вопрос № 56.100
Приветствую вас эксперты. Такой вопрос. Какая-то непонятка получаеться с кодом. Выводит ошибку. Если я в скрипте оставлю
$fr=file("komment.txt", "r") or die("Не могу открыть файл");
То выводиться ошибка php
--
Warning: file() expects parameter 2 to be long, string given in z:homesyte.comWwwgolos.php on line 34
Не могу открыть файл
--
Если оставлю
$fr=file("komment.txt", ) or die("Не могу открыть файл");
То срабатывает or die()
В чем дело я не могу понять. Заранее благодарен.
Отправлен: 20.09.2006, 17:16
Вопрос задал: Чинга (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 13)

Отвечает: Н.В.
Здравствуйте, Чинга!
Исправьте $fr=file("komment.txt", "r") на $fr=fopen("komment.txt", "r")

PS. or die( срабатывает, т.к. такого файла не существует

Удачи!
---------
http://TheDelphi.Ru
Ответ отправил: Н.В. (статус: 5-ый класс)
Ответ отправлен: 20.09.2006, 17:20
Оценка за ответ: 3
Комментарий оценки:
такой файл существует. И мне нужно именно file() так как я буду обращаться именно к массиву данных.

Отвечает: PVS
Здравствуйте, Чинга!
array file (string filename [, int use_include_path])
тоесть второй параметр - 0 или не 0, но не строка. Вы перепутали с fopen()
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 20.09.2006, 17:21
Оценка за ответ: 4
Комментарий оценки:
Вестимо и так, но как тогда правильнее сделать? Мне карйне важно получитьм ассив данных.

Отвечает: Марк Крейн
Здравствуйте, Чинга!
Если вам принципиально работать именно с массивом данных, тогда сделайте так:


$massiv=file("komment.txt");
foreach ($massiv as $line_number => $line) {
//здесь обработка массива
}


перед применением этой конструкции, откройте файл функцией fopen, про которую вам уже написали предыдущие эксперты.
Ответ отправил: Марк Крейн (статус: Практикант)
Ответ отправлен: 20.09.2006, 18:08

Отвечает: Загиров Рустам
Здравствуйте, Чинга!
Не понятно, какую функцию Вы хотели вызвать:
file('file.txt')-возвращает массив, элементы которого содержат строки файла
fopen('file.txt','rt')-только открывает файл на чтение. Чтобы считать содержимое нужно воспользоваться функциями fread() или fgets():
$f=fopen("file.txt","rt") or die("Не могу открыть файл");
while (!feof($f))
print fgets($f);
fclose($f);
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Загиров Рустам (статус: Практикант)
Ответ отправлен: 20.09.2006, 18:27
Оценка за ответ: 4
Комментарий оценки:
file('file.txt')-возвращает массив, элементы которого содержат строки файла
Вот потому мне и нужна функция file() что бы работать как с массивом со строками полученными из файла.

Отвечает: Козлов А. С.
Здравствуйте, Чинга!
Вы впервую очередь должны откурыть файл, а только потом его считывать. Т.е. код должен быть таким:

$fp = fopen("komment.txt", "r"); // Открываем файл для чтения
$fr = file("komment.txt"); // Считываем файл


---------
Вы доставили мне истинное удовольствие парни, взвалив на меня Ваши проблемы (М. Фрай).
Ответ отправил: Козлов А. С. (статус: 8-ой класс)
Ответ отправлен: 21.09.2006, 07:50
Оценка за ответ: 5
Комментарий оценки:
Спасибо я понял это из предыдущих топиков.


Вопрос № 56.104
Здравствуйте!
Можете предложить что-то вроде задачника по PHP? Для улучшения навыков PHP? Маленькие задачки по разным темам, которые можно быстро выполнить.
Что Вы можете рассказать про сертификацию по PHP?
Заранее благодарен за любые ответы!
Отправлен: 20.09.2006, 17:31
Вопрос задал: Yadovit (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Н.В.
Здравствуйте, Yadovit!
Очень хороший сайт http://certifications.ru/. Там высылают сертификат, в случае сдачи теста. Также на сайте есть "Центр обучения", где вы можете повысить свои знания перед сдачей теста.

Удачи!
---------
http://TheDelphi.Ru
Ответ отправил: Н.В. (статус: 5-ый класс)
Ответ отправлен: 20.09.2006, 17:37

Отвечает: Загиров Рустам
Здравствуйте, Yadovit!
Задачника пока ещё не видел в инете, хотя он может где-нибудь всё-таки есть.
Вот ссылка на тестирование
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Загиров Рустам (статус: Практикант)
Ответ отправлен: 20.09.2006, 18:32


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное