在处理过程中使用PHP输出缓冲来发布JavaScript
我有一些正在接收和处理大图像的PHP代码.我想在处理图像时在某些点上回声一些JavaScript,以使用jQuery更新DOM.这是一些示例代码,但不起作用.它只是等待整个5秒钟,然后使警报背对背发生.我希望它立即执行第一个警报,然后在5秒后下一个警报. ob_start(); echo 'alert(\'1...\');'; ob_flush(); sleep(5); ob_start(); echo 'alert(\'2...\');'; ob_flush(); 任何人可以帮忙吗? 解决方案 大多数浏览器缓冲含量直至达到一定尺寸.尝试通过用某些东西填充脚本来使脚本更长. 也:您应该致电 flush 确保关闭Zlib压缩. 其他解决方案 我有一些正在接收和处理大图像的PHP代码.我想在
0 2023-06-02
编程技术问答社区
如何用PHP将浏览器输出写入日志文件?
我的脚本是由Cron Jobs统治的.因此,在运行时,我看不到任务的输出是什么. (错误等.) 因此,我需要使用PHP编写浏览器输出以记录文件.我该怎么做? 解决方案 我使用此脚本进行错误日志: // Destinations define("ADMIN_EMAIL", "nobody@stanford.edu"); define("LOG_FILE", "/my/home/errors.log"); // Destination types define("DEST_EMAIL", "1"); define("DEST_LOGFILE", "3"); /** * my_error_handler($errno, $errstr, $errfile, $errline) * * Author(s): thanosb, ddonahue * Date: May 11, 2008 * * custom error handler *
0 2023-06-01
编程技术问答社区
PHP性能file_get_contents()与readfile()和cat的比较
我正在使用PHP文件阅读功能进行一些基准测试,只是为了我的整体知识. 因此,我测试了三种不同的方法来读取我认为会很快的文件的整体内容. file_get_contents()非常了解其高性能 readfile()已知是File_get_contents()的一个很好的替代方法,直接将数据直接输出到stdout exec('cat fileName')一个非常方便而快速的unix命令 因此,这是我的基准测量代码,请注意,我启用了readfile()的PHP缓存系统,以避免完全伪造结果的直接输出.
0 2023-05-31
编程技术问答社区
在PHP中读取原始I/O流的替代方法
我正在尝试找到阅读php://输入的替代方案.我将其用于从卷发中获取XML数据. 我通常会以: 进行此操作 $xml = file_get_contents('php://input'); 但是,我在Windows上遇到了一些问题. 是否有替代方案,也许使用fopen()或fread()? 解决方案 是的,您可以做: $f = fopen('php://input', 'r'); if (!$f) die("Couldn't open input stream\n"); $data = ''; while ($buffer = fread($f, 8192)) $data .= $buffer; fclose($f); 但是,您必须问自己的问题是,为什么file_get_contents在Windows上工作?因为如果它不起作用,我怀疑fopen是否适用于同一流... 其他解决方案 好的.我想我找到了一个解决方案. $f = @fo
0 2023-05-31
编程技术问答社区
file_put_contents说权限被拒绝?
可能的重复: file_put_contents许可拒绝 我最近传输了服务器,看来File_put_contents在新服务器上没有工作. 所有内容都是相同的,文件夹正确正确,但是由于某种原因,它没有创建文件并将内容放入其中. 我为您创建了一个测试来查看,模仿我们当前的工作方式: file_put_contents("/home/user/public_html/test/test.progress", "test"); 脚本正在 运行 /home/user/public_html/test.php /test folder is chmodded to 755 (777 makes no difference) 我收到以下错误: Warning: file_put_contents(/home/user/public_html/test/test.progress) [function.file-put-contents]: failed
0 2023-05-30
编程技术问答社区
fopen()无法打开流:权限被拒绝,但权限应该是有效的
所以,我有一个错误: Warning: fopen(/path/to/test-in.txt) [function.fopen]: failed to open stream: Permission denied 在目录中执行ls -l,其中test-in.txt产生以下输出: -rw-r--r-- 1 $USER $USER 1921 Sep 6 20:09 test-in.txt -rw-r--r-- 1 $USER $USER 0 Sep 6 20:08 test-out.txt 为了克服这一点,我决定执行以下操作: chgrp -R www-data /path/to/php/webroot 然后做: chmod g+rw /path/to/php/webroot 然而,当我运行php5脚本打开文件时,我仍然会遇到此错误.为什么会发生这种情况?我已经尝试了使用灯以及切诺基通过CGI尝试的,所以不可能是这样. 是否有某种解决
8 2023-05-28
编程技术问答社区
PHP CLI-获取用户输入,同时仍在后台做事
我正在研究用PHP编写的游戏,并在游戏机中运行.回想一下旧的泥浆和其他基于文本的游戏,甚至是ASCII艺术! 无论如何,我要做的就是在接受用户输入时发生事情. 例如,假设这是一个两人游戏,玩家1正在等待玩家2采取行动.这很容易通过收听消息来完成. 但是,如果玩家1想更改一些选项怎么办?如果他们想查看游戏状态方面的详细信息怎么办?承认游戏怎么样?玩家在等待对手采取行动时可能要做很多事情. 不幸的是,我现在拥有的最好的是CTRL+C完全杀死了该程序.然后将另一个玩家悬挂,直到连接掉落.哦,游戏完全丢失了. 我使用fgets(STDIN)获得用户输入.但是,这会阻止执行直到收到输入(通常是一件好事). 这样的控制台程序甚至有可能同时处理输入和输出?还是我应该看看其他一些接口? 解决方案 对不起,马修,我必须解开您的答案,因为我自己找到了: 使用以下代码在仍在执行其他操作的同时接收用户输入: while(/* some condition
0 2023-05-27
编程技术问答社区
在PHP中编写二进制文件
我已经写了一个PHP文件,该文件将在服务器中保存JPEG文件,并且代码的一部分列出如下: //create folder if folder not exist if (!is_dir($save_path)){ $old = umask(0); $flag = @mkdir($save_path,0777); umask($old); if(isset($flag)){ $string = 'Folder Create Success!'."\n"; }else{ $string= 'Folder Create Fail!'."\n"; } echo $string; }else{ echo "Folder exist!!!!"; } //write the content to the server $base=$_REQUEST['image']; $binary=base64_decode($base);
0 2023-05-27
编程技术问答社区
使用fseek逐行倒读一个文件
如何使用fseek逐行读取文件? 代码可能会有所帮助.必须是跨平台和纯php. 非常感谢 问候 jera 解决方案 问题是使用FSEEK问,因此只能假设性能是一个问题,而file()不是解决方案.这是使用FSEEK的简单方法: 我的file.txt #file.txt Line 1 Line 2 Line 3 Line 4 Line 5 和代码:
0 2023-05-26
编程技术问答社区
如何在Java中获得home文件夹(或appdata文件夹,对于windows)的写入权限?
我正在尝试将一些用户设置保存在HOME/APPDATA文件夹中,但是当我使用dir.canwrite()时,它会返回false.这是我用来确定HOME/APPDATA文件夹的代码: public static String getAppDataPath() { if (System.getProperty("os.name").contains("Windows")) { return System.getenv("APPDATA"); } else { return getUnixHome(); } } public static String getUnixHome() { String home = System.getProperty("user.home"); return home != null ? home : "~"; } 这是试图mkdir的代码: public static b
2 2023-05-25
编程技术问答社区
设置文件权限总是返回FALSE
代码: File dir = new File(path); boolean rc1 = dir.setExecutable(true, false); boolean rc2 = dir.setReadable(true, false); boolean rc3 = dir.setWritable(true, false); if (!rc1 || !rc2 || !rc3){ logger.warn("One of the permissions set returned false: rc1="+rc1+" rc2="+rc2+" rc3="+rc3 + " [for dir '"+dir+"']"); } 在Ubuntu上,所有3个电话都会返回false. 在我的窗户上,只有第三个调用setWritable返回false. 目标是创建文件/dir,以便用户(tomcat)和组能够读/写. 但是在Ubuntu上创建的文件,没有组写作的权限. 解决方案
0 2023-05-25
编程技术问答社区
在Java中,File.canExecute()究竟是做什么的?
我创建了一个没有执行权限的普通文件,但是当我使用此文件的路径/名称创建一个Java文件对象时,然后呼叫file.canexecute(),我会根据结果成真,而我期望此方法致电返回false.有人可以解释我在这里缺少什么吗? solaris: $ touch /tmp/nonexecutable $ ls -l /tmp/nonexecutable -rw-r--r-- 1 root root 0 May 21 07:48 /tmp/nonexecutable java: String pathName = "/tmp/nonexecutable"; File myFile = new File(pathName); if (!myFile.canExecute()) { String errorMessage = "The file is not executable."; log.error(errorMessage
0 2023-05-25
编程技术问答社区
几个分叉进程中的第二个不在Haskell中运行(GHC 7.8.4)。
我有一个简单的Haskell程序,该程序叉出了几个过程,每个过程都可以在一定秒的时间内睡觉,然后回声.无论我分叉多少个过程,第二个似乎都不会向终端输出任何可见内容. import System.Process (createProcess, proc, shell, CreateProcess) import Text.Printf (printf, PrintfArg) import Control.Concurrent (forkIO) import Control.Monad (void) sleep :: Integer -> CreateProcess sleep x = shell (printf "sleep %d; echo %d" x x) -- sleep x = shell (printf "sleep %d, echo %d, touch %d.haskell" x x x) main = foldr1 (>>) $ [ forkIO $ void
0 2023-05-24
编程技术问答社区
读取文件时自动检测字符编码
我有时必须从外部来源读取文本文件,这些文件可以使用各种字符编码;通常UTF-8,Latin-1或Windows CP-1252. 是否有一种方法可以方便地读取这些文件,自动检测编码,例如vim做的编辑? 我希望能像: 一样简单 open(my $f, ' 'utf8'; my $utf8 = "H\x{C3}\x{A9}llo, W\x{C3}\x{B8}rld!"; # "Héllo, Wørld!" in UTF-8 my $latin = "H\x{E9}llo, W\x{F8}rld!";
0 2023-05-24
编程技术问答社区
监测外部进程。当STDOUT符合模式时退出
我正在运行系统命令并等待输出匹配特定模式,例如: open(my $fh, '-|', 'echo line 1; sleep 20; echo line 2'); while () { print && last if /1/; } close $fh; 这将打印line 1并离开循环,但在外部命令完成之前不会退出. 匹配所需的输出后,如何允许脚本立即退出? 解决方案 您可以将TERM信号发送到PID,然后在不等待的情况下关闭文件句柄, my $pid = open(my $fh, '-|', 'echo line 1;sleep 5; echo line 2') or die $!; while () { print && last if /1/; } kill TERM => $pid; close $fh; 其他解决方案 您可以使用awk: echo hello; sleep 2; echo patte
0 2023-05-24
编程技术问答社区
UTF | 16 perl输入输出
我正在编写一个将UTF-16编码的文本文件作为输入的脚本,并输出UTF-16编码的文本文件. use open "encoding(UTF-16)"; open INPUT, ") { print OUTPUT "$_\n" } 让我们说我的程序将所有内容从intput.txt中写入output.txt. 这在我的Cygwin环境中非常好起来,它使用的是"这是Perl 5,版本14,subversion 2(v5.14.2)为Cygwin-Thread-Multi-64int构建的" " 但是在我的Windows环境中,它使用的是"这是Perl 5,版本12,subversion 3(v5.12.3)为MSWIN32-X64-MULTI-THERERED构建",
4 2023-05-24
编程技术问答社区
perl read()函数和不是ref的buffer背后有什么魔力?
我不了解perl read($ buf)函数如何修改$ buf变量的内容. $ buf不是参考,因此该参数由复制(来自我的C/C ++知识)给出.那么,$ buf变量如何在呼叫者中修改? 它是领带变量吗?关于SetBuf的C文档也很难以捉摸,对我来说还不清楚 # Example 1 $buf=''; # It is a scalar, not a ref $bytes = $fh->read($buf); print $buf; # $buf was modified, what is the magic ? # Example 2 sub read_it { my $buf = shift; return $fh->read($buf); } my $buf; $bytes = read_it($buf); print $buf; # As expected, this scope $buf was not modified 解决方案 不需要魔术 -
2 2023-05-24
编程技术问答社区
在Perl中从文本文件读入时跳过标题的最佳方法?
我正在从perl中的标签划定文件中获取几列.文件的第一行与其他行完全不同,因此我想尽可能快,有效地跳过该行. 这就是我到目前为止所拥有的. my $firstLine = 1; while (){ if($firstLine){ $firstLine = 0; } else{ my @columns = split (/\t+/); print OUTFILE "$columns[0]\t\t$columns[1]\t$columns[2]\t$columns[3]\t$columns[11]\t$columns[12]\t$columns[15]\t$columns[20]\t$columns[21]\n"; } } 有没有更好的方法可以做到这一点,也许没有$ firstline?还是有一种方法可以直接从第2行开始读取流动? 预先感谢! 解决方案 让我们对此获
0 2023-05-24
编程技术问答社区
从磁盘上读取10GB文件的最快方法是什么?
我们需要阅读和计数不同类型的消息/运行 10 GB文本文件上的一些统计信息,例如a fix 日志.我们使用Linux,32位,4个CPU,Intel,在Perl中进行编码,但是 语言并不重要. 我在蒂姆·布雷(Tim Bray)的 widefinder项目.但是,我们发现使用内存映射 固有地受到32位体系结构的限制. 我们尝试使用多个过程,这似乎有效 如果我们使用4个进程并行处理文件,请更快地处理文件 在4个CPU上.添加多线程会减慢它,也许 由于上下文切换的成本.我们尝试更改 线程池的大小,但仍然比 简单的多进程版本. 内存映射部分不是很稳定,有时 在2 GB文件上需要80秒,有时需要7秒,也许是 页面故障或与虚拟内存使用相关的内容. 无论如何,MMAP在32位上不能超过4 GB 架构. 我们尝试了perl的 ipc :: mmap 和/search.cpan.org/dist/sys :: mmap" rel =" noreferrer"> sys :: mm
0 2023-05-24
编程技术问答社区
Perl。将STDOUT重定向到两个文件
我如何将STDOUT流将其重定向到我的perl脚本中的两个文件(重复)?目前,我只是流到一个日志文件中: open(STDOUT, ">$out_file") or die "Can't open $out_file: $!\n"; 我必须改变什么? thx. 解决方案 您还可以使用 IO::Tee .. use strict; use warnings; use IO::Tee; open(my $fh1,">","tee1") or die $!; open(my $fh2,">","tee2") or die $!; my $tee=IO::Tee->new($fh1,$fh2); select $tee; #This makes $tee the default handle. print "Hey!\n"; #Because of the select, you don't have to do print $tee "Hey!\n" 是的,
0 2023-05-24
编程技术问答社区