Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенаправление стандартных потоков 
V
    Опции темы
BETEP
Дата 14.3.2007, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.3.2007

Репутация: нет
Всего: нет



Всем привет.
Такая проблема:
Пишу скрипт на php для самостоятельной работы в командной строке Linux. Скрипт делает запрос к базе на mysql, затем, в зависимости от результата шлет письмо. Проблемка в том, что при попытке соединения в стандартный поток ошибок записывается какая-то ошибка с кодировками, для меня совсем не существенная. Подскажите, что сделать, чтобы эта ошибка не отображалась на экране? Наиболее простым мне кажется решение перенаправить stderr в /dev/null, но я не знаю как.
PM MAIL   Вверх
GZep
Дата 14.3.2007, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



буферизацию выходного потока не пробовали использовать? (функции ob_*)


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BETEP
Дата 14.3.2007, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.3.2007

Репутация: нет
Всего: нет



нет. можно пример, я попробую.
PM MAIL   Вверх
GZep
Дата 14.3.2007, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Код

echo "привет";
ob_start();
echo "ошибка(не выведется)";
ob_end_clean();
echo "пока";



--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BETEP
Дата 14.3.2007, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.3.2007

Репутация: нет
Всего: нет



Код

ob_start();
fwrite(STDERR, "stderr");
echo "stdout";
ob_end_clean();


В результате "stdout" не вывелось, а вот "stderr" - вывелось.
PM MAIL   Вверх
GZep
Дата 14.3.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Ну, а вам то что надо? просто перехватить сообщение об ошибке...


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BETEP
Дата 14.3.2007, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.3.2007

Репутация: нет
Всего: нет



Мне нужно, чтобы сообщение, которое появляется при вызове mysql_connect, не попадало в stderr. Т.к. то, что попадает туда, шлется на мыло руководителю отдела, а скрипт срабатывает каждые пять минут... И все это, почему-то ему не нравится.  smile 
PM MAIL   Вверх
GZep
Дата 14.3.2007, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



BETEP, выкладывайте весь скрипт целиком.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
BETEP
Дата 15.3.2007, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.3.2007

Репутация: нет
Всего: нет



ОК. Приду на работу - выложу
PM MAIL   Вверх
BETEP
Дата 16.3.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.3.2007

Репутация: нет
Всего: нет



Код

#!/usr/bin/php -q 
<?
    $msg = "";
    
# Connection to server, than backup-server
    $db = "db";
    $user = "user";
    $pass = "pasword";
    $server1 = "ip:port";
    $server2 = "ip:port";
    $link = mysql_connect($server1,  $user,  $pass);
    if (!$link)
    {
        $link = mysql_connect($server2, $user, $pass);
        if (!$link)
            $msg = "Connecting to DB has failed\n";
    }
...
?>

Во время вызова mysql_connect() в stderr пишется что-то типа "Codepage #51 not found ... " 
PM MAIL   Вверх
Vaulter
Дата 16.3.2007, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



так запускайте Ваш скрипт как
./script.php 2>/dev/null


--------------------
PM MAIL WWW ICQ   Вверх
Alex13
Дата 17.3.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 30.12.2005
Где: Новосибирск

Репутация: нет
Всего: 1



BETEP, а если перед mysql_connect() поставить @ ?


--------------------
Самая страшная ошибка - это ошибка, не имеющая явных причин и конкретных последствий.
Антисоциальный блог.
PM WWW ICQ Jabber   Вверх
BETEP
Дата 17.3.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.3.2007

Репутация: нет
Всего: нет



Цитата(Vaulter @  16.3.2007,  18:28 Найти цитируемый пост)
./script.php 2>/dev/null

Как-то это не серьезно, хотелось бы все-таки средствами php решить вопрос.

Цитата(Alex13 @  17.3.2007,  15:47 Найти цитируемый пост)
а если перед mysql_connect() поставить @ ?

Попробую. А что это значит?
PM MAIL   Вверх
Всемогущий
Дата 17.3.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 25.6.2006
Где: Челябинск

Репутация: 5
Всего: 13



заткнуть вот этой вот @ глотку той функции которая кричит о разных ошибках smile 


--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
BETEP
Дата 17.3.2007, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.3.2007

Репутация: нет
Всего: нет



Вставил @. Поглядим, если начальник матюкаться перестанет, значит сработало.  smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1037 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.