За последние 24 часа нас посетили 17718 программистов и 1721 робот. Сейчас ищут 868 программистов ...

popen();

Тема в разделе "Прочие вопросы по PHP", создана пользователем Mich.STR, 15 май 2008.

  1. Mich.STR

    Mich.STR Активный пользователь

    С нами с:
    15 май 2008
    Сообщения:
    1
    Симпатии:
    0
    Ситуация такова: в скрипте сливается/заливается дамп базы путем вызова mysql/mysqldump через popen. Например popen("/usr/bin/mysql -uroot -ppass db < \"/home/db.sql\"",'r'); И сейчас возникло по этому способу пара вопросов, ответы на которые я очень надеюсь получить здесь.
    1) Как проверить выполнение? То есть залился ли бекап или вышла какая-либо ошибка? Просто в некоторое смущение ввело то, что popen в любом случае возвращает TRUE.
    2) Как проверить правильность пути в запросе? (т.е. /usr/bin/mysql) Просто пользователь должен сам вводить его для своего сервера, и может стать что там другой путь. А значит и проверка правильности ввода так же должна осуществлятся.

    Если же отвечать лень, то можете подкинуть хотя бы ссылку на информацию по данной теме. :) Заранее спасибо.
     
  2. Anonymous

    Anonymous Guest

    www.php.net/popen

    PHP:
    1. <?php
    2.  
    3. /* Добавляем перенаправление чтобы прочитать stderr. */
    4. $handle = popen('/path/to/spooge 2>&1', 'r');
    5. echo "'$handle'; " . gettype($handle) . "\n";
    6. $read = fread($handle, 2096);
    7. echo $read;
    8. pclose($handle);
    9. ?>
    10.