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

  Все выпуски  

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


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

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

Выпуск № 276
от 07.03.2006, 22:57

Администратор:Калашников О.А.
В рассылке:Подписчиков: 229, Экспертов: 35
В номере:Вопросов: 2, Ответов: 5


Вопрос № 36535: Приветствую! В связи с периодическими ошибками в некоторых скриптах (не все до конца продумал) периодически пропадают файлы, или стирается содержимое. Но вопрос не в этом, а вот в чем: Как можно собрать все ошибки скрипта перед его запуском? ...
Вопрос № 36574: Можно ли с помощью РНР изменить цветную картинку на чёрно-белую или коричневатую под старину? Если да, то какие ф-ции нужно использовать? Заранее благодарен....

Вопрос № 36.535
Приветствую!
В связи с периодическими ошибками в некоторых скриптах (не все до конца продумал) периодически пропадают файлы, или стирается содержимое. Но вопрос не в этом, а вот в чем:
Как можно собрать все ошибки скрипта перед его запуском? Чтобы каждый раз как у пользователя что-то выскочит (например пара Warning'ов) эти же warning'и копировались бы в специальный файл.
Заранее спасибо за помощь, надеюсь все понятно описал.
Отправлен: 02.03.2006, 06:49
Вопрос задал: demar (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Ерёмин Андрей
Здравствуйте, demar!
Это зависит от параметра log_errors в конфигурационном файле php.ini. А так как этот файл находится на сервере, то изменить его не представляется возможным; функции, аналогичной error_reporting() в PHP нет. Если эта опция включена, то все ошибки записываются автоматически в файл error_log.txt. На большинстве хостеров этот параметр выключен, но встречаются и такие, где он включен. Рекомендую обратиться в службу поддержки своего хостера - наверняка они согласятся включить эту опцию для вас.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Отправлен: 02.03.2006, 07:52
Оценка за ответ: 5
Комментарий оценки:
А разве нельзя через ini_set() выставить log_errors в "1" и error_log в значение нужного мне файла?
Только что попробовал вот такой скрипт (файла file.txt на сервере не существует, поэтому ожидается ошибка уровня E_WARNING):

error_reporting(E_ALL ^ E_NOTICE);
ini_set(log_errors, 1);
ini_set(error_log, "./error.txt");
fopen("file.txt", r);

Все работает, файл с ошибками пишется. Но есть один недочет - если выставить error_reporting(0), то и в файл ничего записываться не будет. Выходит, что скрыть ошибки от пользователя и в тоже время записать их в файл таким способом, к сожалению, не получится.
Нет идей?

Отвечает: Cтепанов Андрей Валерьевич
Здравствуйте, demar!
Вам необходима библиотека Debug_HackerConsole.
Взять вы ее можете по адресу: http://dklab.ru/lib/Debug_HackerConsole/

---------
Все мы будем в аду, но я буду с вилами!!
Ответ отправил: Cтепанов Андрей Валерьевич (статус: 4-ый класс)
Отправлен: 02.03.2006, 08:43
Оценка за ответ: 5
Комментарий оценки:
dklab вообще молодцы!
я уже и забыл про параметр display_errors
сейчас добавил этот параметр в ранее указанный скрипт и все заработало. в браузере пусто, все пишется в файл.
вопрос, в принципе, закрыт. Хотя от советов других экспертов не отказываюсь :)
ps>

error_reporting(E_ALL ^ E_NOTICE);
ini_set(display_errors, off);
ini_set(log_errors, 1);
ini_set(error_log, "./error.txt");
fopen("file.txt", r);

Отвечает: КиберТварь
Здравствуйте, demar!
log_errors boolean
Tells whether script error messages should be logged to the server's error log or error_log. This option is thus server-specific.

Замечание: You're strongly advised to use error logging in place of error displaying on production web sites.

log_errors_max_len integer
Set the maximum length of log_errors in bytes. In error_log information about the source is added. The default is 1024 and 0 allows to not apply any maximum length at all. This length is applied to logged errors, displayed errors and also to $php_errormsg.

Ответ отправил: КиберТварь (статус: Практикант)
Отправлен: 03.03.2006, 18:36


Вопрос № 36.574
Можно ли с помощью РНР изменить цветную картинку на чёрно-белую или коричневатую под старину? Если да, то какие ф-ции нужно использовать?

Заранее благодарен.
Отправлен: 02.03.2006, 15:03
Вопрос задал: Agro (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Rusland
Здравствуйте, Agro!
На мой взгляд, без библиотеки ImageMagick здесь не обойтись. На сайте http://imagemagick.net/script/index.php можете скачать саму библиотеку, там же есть ссылки на примеры использования.
---------
Если партия скажет есть контакт, будем есть контакт.
Ответ отправил: Rusland (статус: Специалист)
Отправлен: 02.03.2006, 15:44
Оценка за ответ: 4
Комментарий оценки:
Спасибо! Только это ж нужно, что бы ImageMagick был установлен и на сервере, а что делать, если сервер этот софт не поддерживает? Может всё-таки есть что-нибудь в самом РНР?

Отвечает: КиберТварь
Здравствуйте, Agro!
есть такая функция
imagecopymergegray -- Copy and merge part of an image with gray scale
посмотрите на офф сайте РНР там и примеры есть
http://php.net/manual/ru/function.imagecopymergegray.php
Ответ отправил: КиберТварь (статус: Практикант)
Отправлен: 03.03.2006, 17:13
Оценка за ответ: 5
Комментарий оценки:
Сасибо.


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.17 (beta) от 06.03.2006
Яндекс Rambler's Top100

В избранное