Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: printf, sprintf и vprintf
Форумы портала PHP.SU » » Операционная система и системные вызовы » printf, sprintf и vprintf

Страниц (1): [1]
 

1. DeepVarvar - 11 Мая, 2011 - 11:40:41 - перейти к сообщению
EuGen пишет:
sprintf

Это как без вывода? Про ob_start() речи не было.
Есть еще варианты не допустить вывод при sprintf() и Ко???
2. EuGen - 11 Мая, 2011 - 11:48:15 - перейти к сообщению
http://ru.php.net/manual/en/function.sprintf.php
- sprintf никогда ничего не выведет сама по себе.
3. DeepVarvar - 11 Мая, 2011 - 11:59:43 - перейти к сообщению
EuGen если бы она у меня не выводила (равно как и vprintf, printf и пр..) я бы не спрашивал.
Тогда вопрос иной. Из-за каких настроек у меня выводит???
4. EuGen - 11 Мая, 2011 - 12:04:21 - перейти к сообщению
Это уже несколько не по теме. Выделим в новую.
0. Вы уверены, что не путаете printf и sprintf ?
1. На вывод отправляются только результат этих функций? Скажем, date('Y-m-d') которая тоже возвращает строку, не выводится?
5. DeepVarvar - 11 Мая, 2011 - 12:08:21 - перейти к сообщению
EuGen пишет:
date('Y-m-d') которая тожевозвращает строку, не выводится?

Не выводится - возвращает результат..
А вот все ф-ции вышеуказанного семейства сразу сплевывают результат на вывод (в браузер). И ничем не перехватываются (кроме ob_start, ob_get_content и втихую ob_clean)
(Добавление)
EuGen что-то у меня не так с PHP? Бага или настройки?
6. EuGen - 11 Мая, 2011 - 12:22:56 - перейти к сообщению
Пока что думаю что-то вроде
http://ru.php.net/manual/en/outc...output-buffering
Но странность только вышеуказанных функций удивляет. Код покажите, как тестируете, и не забудьте добавить
var_dump(ini_get_all());
7. DeepVarvar - 11 Мая, 2011 - 12:31:14 - перейти к сообщению
EuGen я сейчас на работе и в Винде, тут ничего нет кроме фотошопа,
сейчас перезагружусь в Linux, проверю поведение пыха.
Отпишусь сразу.
За проблему на домашнем компе, отпишусь уже из дома, после 20:00..
(Добавление)
На рабочей машине порядок.
*print* => выводит
*sprint* => возвращает

Как уже говорил - из дома отпишусь..
8. DeepVarvar - 11 Мая, 2011 - 20:34:11 - перейти к сообщению
Ога!!! Пишу из дома.

Собственно, есть у меня на машинке две (полторы?) ламп-сборочки.
(nginx + php-fastcgi) and (Apache + mod-php), есть и cli-версия.
Пых у меня 5.2 Но он один. Это не разные дистры.

А вот ведет он себя как оказалось - совершенно бессовестно.
Если работать через Apache+mod-php - все прекрасно,
а через nginx+php-fastcgi - вылезает вышеописанная штукенция.

Выходит проблема у CGI-сборки, а она из репы, между прочим.

EuGen пишет:
var_dump(ini_get_all());

Ох, чувствую не влезет все. Лучше конкретнее параметр укажите.
(Добавление)
Это CGI:
Спойлер (Отобразить)


И вот что больше всего удивило меня сейчас:
После перезагрузки заработало как надо
9. DeepVarvar - 14 Мая, 2011 - 12:22:11 - перейти к сообщению
Мне кажется что я начинаю догадываться о причинах странного поведения.
Вчера залез в "top -u www-data" и увидел там:

Восемь процессов nginx (сам так ставил)
Шесть процессов php-fastcgi (сам так ставил)
Пять процессов apache (это к проблеме не относится)
И... около пятнадцати процессов php (cli)

Так вот, я в последнее время играюсь с многопоточными демонами.
Естественно - отвязанные (fork) процессы не завершались и продолжали работать (последние экспериментальные версии нестабильны пока).
Хотя загрузка CPU стояла на 2-3%, а вот память... была забита под завязку..

Может ли быть причиной обсуждаемой проблемы - отсутствие оперативной памяти?
Если память заканчивается, промежуточные данные сбрасываются в своп.
Однако и тут нюанс - сами процессы в своп не падают..
Выходит что не найдя "места" для буфера - пых сразу сбрасывал результаты на вывод.
Но, если догадки верны, вопрос все в том же - почему именно это семейство ф-ций???

 

Powered by ExBB FM 1.0 RC1