草庐IT

php - 从 php stdin 保存大文件

请告诉我从phpstdin保存大文件的最佳方法。iOS开发人员向我发送大量视频内容到服务器,我必须将其存储到文件中。我读取带有视频数据的标准输入线程并将其写入文件。比如这样:$handle=fopen("php://input","rb");while(!feof($handle)){$http_raw_post_data.=fread($handle,8192);}用什么功能比较好?file_get_contents或fread或其他东西? 最佳答案 我同意@hek2mgl的观点,将其视为多部分表单上传最有意义,但如果您不能更改输

php - 由于 phpunit 恶意文件 eval-stdin.php,端口 80 在 cpanel 上被阻止

我已将googleplus登录添加到我的网站(托管在共享服务器上)。google登录通过composer.json组合依赖库时,phpunit库是作为一部分下载的。它包含一个文件phpunit\phpunit\src\Util\PHP\eval-stdin.php。由于这个文件,我的域的80端口被阻止,因为他们说这是一个恶意软件文件。存储库链接是https://github.com/sebastianbergmann/phpunit以下是eval-stdin.php文件中的代码eval('?>'.file_get_contents('php://input'));有没有替代此代码的方法

php - 如何让子进程在 PHP 中写回其父进程的 STDIN?

在PHP中,有没有办法让用pcntl_fork()fork的子进程将数据直接写回其父进程的标准输入?我不是说使用单独的管道——stdin资源本身?(它必须是标准输入,因为简而言之,除非它可以将自己的标准输入直接绑定(bind)到传入数据,否则父级正在做的事情将无法正常工作——单独的管道将无法工作。)如:$pid=pcntl_fork();if(!$pid){//dofunchildprocessstuff//writedatabacktoparent'sSTDIN} 最佳答案 在Linux上(不知道这对于Unix一般而言有多普遍),

stdin - 如何在新输入之前清除 php STDIN?

我有一个关于php-cli的新问题。我正在使用这个:define("STDIN",fopen('php://stdin','r'));$input="";while($input==""){echo"Pleaseenter:";$input=fread(STDIN,80);}问题是:如果我输入的字符超过80个,比如100个,则多余的20个字符会添加到下一个字符中。如何在每次输入前“清除”STDIN? 最佳答案 将fread()的length参数设置为更高的值(即1024、2048、10000)-它决定读取数据的最大长度通过fread

php - Symfony 控制台 - 未定义常量 STDIN

我最近将我的symfony项目上传到我的网络托管商。使用控制台时,每当我应该输入一些内容时,我都会收到以下错误。Notice:UseofundefinedconstantSTDIN-assumed'STDIN'in/htdocs/symfony/vendor/symfony/symfony/src/Symfony/Component/Console/Helper/DialogHelper.phpline80给出错误的文件在这里:https://github.com/symfony/Console/blob/master/Helper/DialogHelper.php第103行我假设我的

php - 将数据放入php ://input from command line

我有一个从php://input读取的小PHP脚本.使用我的命令行我可以运行脚本但我不知道如何“填充”php://input.我尝试使用phpfile.php但它填充了php://stdin不是php://input脚本可以总结为: 最佳答案 php://input仅适用于从网络服务器运行的脚本。当CLI脚本需要访问标准输入时,它们使用php://stdin,或者已经打开的流STDIN:或 关于php-将数据放入php://inputfromcommandline,我们在StackOve

php - 如何在 php 中处理标准输入到标准输出?

我正在尝试编写一个简单的php脚本来从stdin获取数据,对其进行处理,然后将其写入stdout。我知道PHP可能不是这类事情的最佳语言,但我需要现有的功能。我试过了但它不起作用。我是这样调用它的:echo-e"\ndata\n"|php脚本.php|猫。并且没有收到错误消息。我尝试构建的脚本实际上将成为更大管道的一部分。关于为什么这不起作用的任何线索?PS:我对PHP不是很有经验。 最佳答案 如果您正在使用管道,您将需要缓冲输入,而不是一次处理所有输入,而是一次处理一行,这是*nix工具的标准。文件顶部的SheBang允许您直接执

PHP readline() 当 STDIN 不是键盘时

我正在编写一个能够从标准输入读取然后请求确认的脚本。当我直接运行它时:$phpscript.phpinputdata^DAreyousure?但我正在尝试使用一个文件作为STDIN来运行它。在这种情况下,readline()返回false并且不提示确认。$phpscript.php或$echo"foobar"|phpscript.php以这种方式调用此脚本时,如何从STDIN和键盘读取两者?谢谢。 最佳答案 使用fgetc使用STDIN函数。请参见下面的示例。$input=fgets(STDIN,1024);echo"\nAreyo

PHP:为 STDIN/单字符处理添加方向键支持

在PHP中,我可以使用以下代码从命令行程序读取输入$stream=STDIN;$test=fgets($stream);echo$test;这适用于简单的输入。但是,如果我尝试使用类似后退箭头键的东西,我的shell将如下所示Thisisatest^[[D^[[D^[[D即^[[D的箭头键转义序列被发送到shell。PHP本身将解释箭头键——即输入这个Thisisatest^[[D^[[D^[[D^[[Dsecondtest会输出这个Thisisasecondtest但是,我希望shell“正确地”(即做我认为他们应该做的,而不是我发送的字面意思)解释箭头键,以便插入点在键入时移动。这

php - 从 Git 预提交 Hook 上的 STDIN 读取(使用 PHP)

我正在寻找一种方法让git-commit等待标准输入。我在PHP中编写代码,因为我的bash技能不存在,所以我想做一个常规的可以解决这个问题,等到我写入内容后再继续,但它会继续执行并继续执行我的PHP脚本。这背后的想法是,在我标记发布后,git会将HEAD推送到测试网络服务器,发送几条推文,并让我在CHANGELOG中写下有关发布的一些细节.虽然我可以实现写入文件(使用exec('mate-w')),但我希望它能挂起,直到我在服务器上进行快速测试。如果我发现任何错误(懒惰,我知道),这将使我能够回滚。感谢您的帮助! 最佳答案 大多数