Tôi đang cố gắng để có được đầu ra nhất định cho lệnh svn ở định dạng XML. Đầu ra là ok khi tôi nhập các thông số hợp lệ. Tuy nhiên, khi tôi nhập sai mật khẩu, đầu ra không hiển thị thông báo lỗi. Đây là mã PHP:PHP exec() không trả về thông báo lỗi trong đầu ra
exec('/usr/bin/svn --username something --password something --non-interactive log -r HEAD --xml --verbose http://a51.unfuddle.com/svn/a51_activecollab/', $output);
Dưới đây là kết quả tôi nhận được trong terminal:
<?xml version="1.0"?>
<log>
svn: OPTIONS of 'http://a51.unfuddle.com/svn/a51_activecollab': authorization failed: Could not authenticate to server: rejected Basic challenge (http://a51.unfuddle.com)
Và đây là kết quả tôi nhận được từ các biến đầu ra $ với var_dump:
array(2) {
[0]=>
string(21) "<?xml version="1.0"?>"
[1]=>
string(5) "<log>"
}
Như bạn có thể thấy biến đầu ra $ không trả lại dòng đầu ra thứ ba, nơi thiết bị đầu cuối thực hiện. Xin hãy giúp tôi để có được cùng một đầu ra như tôi nhận được trong thiết bị đầu cuối (tôi thậm chí đã thử với shell_exec() hoặc hệ thống() phương pháp nhưng họ trở lại cùng một đầu ra như exec()) Làm thế nào để có được sản lượng đầy đủ? Cảm ơn bạn trước!
Điều này giải quyết được sự cố. Cảm ơn nhiều. – Goran
Ngoài ra: không phải là nó kỳ quái là exec của PHP không cung cấp một cách đơn giản để nắm bắt đầu ra 'stderr' một cách riêng biệt? –