检查Windows文件是否被重定向到自身
我试图弄清楚如何测试文件是否被重定向到自身,例如.\command.exe file1 > file1 在 *nix世界中,我只使用这样的东西: // Language agnostic... if (file_dev == out_dev && file_ino == out_ino) { printf("%s\n", "same file!"); } 但是在Windows中,如果我尝试这样做: // This (language) is Go... // create fileStat... // now stat stdout outStat, err := os.Stdout.Stat() // error check if os.SameFile(fileStat, outStat) { fmt.Println("same file!") } ...我得到IncorrectFunction错误. 我读了这本书(如何检查STDO
18 2023-06-02
编程技术问答社区
当把stdout和stderr重定向到不同文件时,抑制NativeCommandError输出
我有以下文件: test.ps1 & e:\test.bat > stdout.txt 2> stderr.txt test.bat @echo off echo write to stdout echo write to stderr >&2 当我打电话test.ps1喜欢这样的时候: powershell -ExecutionPolicy bypass e:\test.ps1 输出文件看起来像这样: stdout.txt write argument to stdout stderr.txt test.bat : write to stderr At E:\test.ps1:5 char:1 + & "$application" "$argument" > $stdout 2> $stderr + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Category
12 2023-06-02
编程技术问答社区
将stdout和stderr重定向到文件,将stderr重定向到屏幕,同时保留输出顺序
我想在保留输出顺序的同时将stdout和stderr重定向到文件,但随后也将stderr显示为屏幕.我看到很多问题讨论了: https ://unix.stackexchange.com/questions/9646/show-only-sterr-on-on-screen-screen-but-write-both-both-stdout-s-tddout-and-stgerr-terr-tedr-ter-file https://unix.stackexchange .com/esporta/333198/bash-redirect-stderr-to-file-to-stdout-stderr-to-screen https://.Stackexchange.com/Question/364166/redirect-bash-stdoutstderr-to-on-file-and-stderr-to-stderr-to to Another-file 将stdot&
14 2023-06-02
编程技术问答社区
为什么STDOUT行被打印在STDERR行之后?
我完全不了解这种行为. 我有一个非常简单的perl脚本: #!/usr/bin/perl use strict; use warnings; print "line 1\n"; print STDERR "line 2\n"; 如果我从控制台运行它,我会得到我的期望: $ perl a.pl line 1 line 2 但是,如果我将其重定向到文件,我将以相反的顺序获得行: $ perl a.pl &> a $ cat a line 2 line 1 如何使用相同 命令我进入控制台? 解决方案 这是缓冲的效果.输出到终端时,Perl(作为STDIO)使用基于线的缓冲,这将产生预期效果.输出到文件时,它会使用块缓冲(通常为4K或8K块),因此仅在程序端冲洗. 您要观察到的差异是因为STDERR被没有被掩盖,与大多数其他手柄不同. 使用$|特殊变量,避免此问题的最简单方法是在Stdout上启用自动插入.请参阅 Perlvar 有关更
4 2023-06-02
编程技术问答社区
php shell命令输出到变量
嗨,我正在尝试将shell命令传递到php中的变量,我正在做 $var=system('ls'); 并执行它,但输出回声是默认的,而不是在我使用的变量中 $var=exe('ls'); 或 $var=exec('ls'); 但是print_r只需在列表上打印最后一个文件,为什么会发生?以及我如何做? 解决方案 使用$var=shell_exec('ls'); 或 exec : exec('ls', $output, $return_var); # print array foreach($output as $content){ echo $content . "\n"; } print "return_var:" . $return_var . "\n";
2 2023-06-02
编程技术问答社区
如何处理pHP中的stdin?
我正在尝试编写一个简单的PHP脚本以从stdin中获取数据,对其进行处理,然后将其写入stdout.我知道PHP可能不是这种事情的最佳语言,但是我需要现有的功能. 我尝试了 但行不通.我是这样调用的:echo -e "\ndata\n" | php script.php | cat.并且没有获得错误消息.我要构建的脚本实际上将是较大管道的一部分. 关于为什么这不起作用的任何线索? ps:我对PHP的经验不太经验. 解决方案 如果您是管道,则需要缓冲输入,而不是一次处理所有输入,而是一次按一行作为 *nix工具的标准. 文件顶部的shebang允许您直接执行文件,而不必在命令行中调用PHP. 将以下内容保存到test.php并运行 cat test.php | ./test.php 查看结果.
2 2023-05-31
编程技术问答社区
如何使用Laravel Scheduler命令将输出重定向到Stdout?
我将调度程序应用程序运行到Docker容器中. laravel调度程序通过主管管理并执行到容器中(我通过关注 http://veithen.github.io/2015/01/08/supervisord-redirecting-stdout.html ): [supervisord] nodaemon = true loglevel = info stderr_logfile = /dev/stderr stderr_logfile_maxbytes = 0 stdout_logfile = /dev/stdout stdout_logfile_maxbytes = 0 umask = 022 pidfile = /tmp/supervisord.pid, logfile = /tmp/supervisord.log [program:scheduler] directory = /var/www command = sh -c 'php artisan schedule
0 2023-05-31
编程技术问答社区
PHP: 如何使用monolog来记录到控制台(php://out)?
我刚刚切换到独白,想将我的消息记录到PHP控制台而不是文件.对于某些人来说,这似乎很明显,但是我花了一段时间才弄清楚如何做到这一点,而我在So上找不到类似的问题/答案. 独白的github readme 仅显示如何使用文件: pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING)); // addWarning('Foo'); $log->addError('Bar'); ,但它没有说明如何将消息登录到控制台的任何地方.在Google上搜索后,我将要么降落在一个帮
0 2023-05-30
编程技术问答社区
用PHP在stdout上向Jplayer串流一个MP3
我使用以下参数初始化Jplayer: $jplayer.jPlayer('setMedia',{ mp3: data.audioMP3, oga: data.audioOGA }); 假设data.autdioMP3(并且是OGA对应物)是PHP脚本的途径,例如:'http://myserver.local/playaudio.php?songID=99&format=mp3' 我在playaudio.php上挣扎的地方.我想读取MP3文件并将其流式传输到Jplayer而不揭示音频的路径(这就是为什么我不使用通往音频文件的路径初始化Jplayer的原因). 类似(部分摘自 readfile at php的示例文档):
0 2023-05-29
编程技术问答社区
docker中的php -fopen()或file_put_contents()无法写入/proc/1/fd/2用于stdout写作
基于Centos7的Docker容器中运行PHP-FPM应用程序. 由于我正在使用Docker,因此我必须将所有进程的日志输出写入PID 1的输出.这样,Docker发动机可以捕获日志以进行以后处理(因此它们以docker logs显示). 我可以通过将所有日志写入/proc/1/fd/2来实现这一目标,而在任何应用程序中都没有问题.我可以使用nginx进行操作,然后做echo "test" > /proc/1/fd/2,并且对docker logs显示正常. 但是,对于PHP软件,我想做同样的事情,写入/proc/1/fd/2,但是无论我做什么,我似乎都无法使文件流进行. PHP-FPM产生了许多儿童过程.因此,我必须明确写入pid 1! 的stdout 所以我正在做这样的事情: $handle = fopen("/proc/1/fd/2", "w"); fwrite($handle, $msg); fclose($handle); 我只得到War
2 2023-05-28
编程技术问答社区
有可能捕捉到PHP的回声输出吗?
所以我有一个功能,例如: public static function UnorderedList($items, $field, $view = false){ if(count($items) > 0){ echo ' '; foreach($items as $item){ echo ''; if($view){ echo ''.$item->$field.''; }else{ echo $item->$field; } echo ' '; } echo ' ';
0 2023-05-28
编程技术问答社区
echo等于fputs( STDout )吗?
echo等于fputs( STDOUT ),还是echo写入其他流?我已经使用了PHP一段时间了,但是我不太了解较低级别的实际情况. 解决方案 根据包装器上的PHP手册,答案是否. php://输出 php://输出是仅写入流,允许您写入 输出缓冲机构的方式与print()和echo(). 相同 print和echo写入php://output流,而fputs(STDOUT)写入php://stdout. 我做了一些测试:
0 2023-05-28
编程技术问答社区
PHP CLI不使用stderr来输出错误
我正在MacOS中的NSTASK运行PHP CLI,但是这个问题更多地是关于CLI本身的. 我正在听stderr管道,但是无论我尝试运行哪个文件,都没有输出. 如果文件类型不是纯文本,则stdout设置为?. 如果文件是带有错误的PHP脚本,则错误消息仍将打印到stdout. 是否有向解释器的开关来通过stderr处理错误?我是否可以选择检测解析stdout以外的其他错误? 解决方案 display_errors指令(可以在任何地方设置)选择该参数" stderr"将其报告为 stderr 而不是 stdout 或完全禁用的错误输出.引用PHP手册条目: value " stderr" 将错误发送到 stderr 而不是 stdout .该值从PHP 5.2.4开始可用. 另外streams.php" rel =" noreferrer">命令行nput/output stream : fwrite(STDERR, 'error messag
0 2023-05-27
编程技术问答社区
在PHP中从Imagick图像中输出原始图像
我正在使用Imagick Lib对原始图像进行一些修改.然后,我想直接将其输出到浏览器而不保存的情况下.有办法做到吗? 我尝试使用Imagick::writeImage('STDOUT')(空输出)和'php://stdout',错误"无法写入文件". 有什么想法吗? :) 解决方案 您只需要呼应您的Imagick对象: $img = new Imagick($file); header('Content-Type: image/'.$img->getImageFormat()); echo $img; 其他解决方案 如果您使用的是HHVM,如果您只是尝试回荡Imagick对象,就会抛出致命的例外,因此您需要调用getimageBlob(); $imagick = new Imagick('my-image.jpg'); header('Content-Type: image/' . $imagick->getImageFormat()); echo
0 2023-05-26
编程技术问答社区
更新命令行输出,即为进度
我希望能够在命令行上的简单PHP脚本中显示进度仪表.而不是看到 Progress: 0% Progress: 1% etc... 我只想更改的数字,然后替换上一个数字,就像git克隆一样,例如Resolving deltas: 100% (8522/8522), done.. 在搜索此问题时,我找到了 perl中回答的同样的问题,这是完美的,是完美的,但是我在PHP中找不到它.是否可以?如果没有,我将求助于c. 谢谢 更新:如果有人对C ++版本感兴趣,在这里. 解决方案 这可以使用 ansi逃生序列 - 请参阅此处有关列表. 在PHP中,您将使用"\033"在该页面上指示ESC时. 在您的情况下,您可以使用类似的东西: echo "Progress : "; // 5 characters of padding at the end for ($i=0 ; $i
0 2023-05-26
编程技术问答社区
如何在PHP中重定向STDOUT到一个文件?
下面的代码几乎有效,但这不是我真正的意思: ob_start(); echo 'xxx'; $contents = ob_get_contents(); ob_end_clean(); file_put_contents($file,$contents); 有更自然的方法吗? 解决方案 可以直接将stdout直接写入PHP中的文件,这比使用输出缓冲更容易,更简单. 在您的脚本的一开始: fclose(STDIN); fclose(STDOUT); fclose(STDERR); $STDIN = fopen('/dev/null', 'r'); $STDOUT = fopen('application.log', 'wb'); $STDERR = fopen('error.log', 'wb'); 为什么您一开始会问?尚未打开文件描述符,因为当您关闭标准输入,输出和错误文件描述符时,前三个新描述符将成为新的标准输入,输出和错误文件描述符. 在我的示
0 2023-05-26
编程技术问答社区
从网站上的PHP脚本运行Java类文件
我有一个网站,希望能够允许用户从网站上运行服务器上的Java文件. 我希望用户单击一个将在服务器上运行Java文件的按钮,并且Java程序打印到标准输出的任何内容都将在网站上打印出来供用户查看. 如何完成此操作(从PHP调用Java程序,并实时将标准从Java文件馈回PHP网站)? 更新: 感谢您从PHP运行Java程序的答案.但是,我也想能够,因为Java程序正在打印到STDOUT,它将在执行时打印出大量文本,以便能够在网页上打印出来,以便用户可以看到哪个阶段Java程序正在执行. 如何做到这一点,是否需要任何其他Ajax或JavaScript或类似的东西? 解决方案 php exec()功能是必须的,但是您应该是 非常小心在您允许执行的操作中. 't依靠用户输入,因为它可能会损害整个服务器. 使用EXEC调用Java应用程序启动器,您可以从PHP执行任何Java应用程序,例如
0 2023-05-26
编程技术问答社区
如何从nodejs中的phantomjs stdout中读取图像以提供服务?
我可能缺少一些细节,因为栅格脚本效果很好,但是到目前为止,我还没有成功阅读Nodejs的输出. 这是nodejs部分: var http = require('http'); var qs = require('querystring'); var fs = require('fs'); var spawn = require('child_process').spawn; var SCRIPT = fs.readFileSync('./script.js', { encoding: 'utf8' }); http.createServer(function (request, response) { var body = ''; request.on('data', function (data) { body += data; }); request.on('end', function () { var
0 2023-05-25
编程技术问答社区
幻象js pdf到stdout
我拼命地试图输出一个由phantomjs生成的PDF,例如 我得到的是一个空的pdf文件,尽管它的大小不是0,但它显示一个空白页. var page = require('webpage').create(), system = require('system'), address; address = system.args[1]; page.paperSize = {format: 'A4'}; page.open(address, function (status) { if (status !== 'success') { console.log('Unable to load the address!'); phantom.exit(); } else { window.setTimeout(function () { page.render('/dev/stdout', {
0 2023-05-25
编程技术问答社区