我正在评估使用Delphi(ISAPI/CGI/...)编写Web应用程序的可能性.我仍然看不到使用Delphi而不是"经典"Web开发框架的充分理由.
如果您有这方面的经验,请分享您的意见.你会推荐Delphi而不是PHP/Rails/ASP/......吗?你知道用Delphi编写的任何Web应用程序吗?(不是网络服务)
我希望能够允许用户在生成长期运行的GCI脚本时查看输出,而不是在脚本完成后查看.但是,即使我明确刷新STDOUT,服务器似乎也等待脚本完成,然后再将响应发送到客户端.这是在运行Apache 2.2.9的Linux服务器上.
示例python CGI:
#!/usr/bin/python
import time
import sys
print "Content-type: text/plain"
print
for i in range(1, 10):
print i
sys.stdout.flush()
time.sleep(1)
print "Done."
Run Code Online (Sandbox Code Playgroud)
perl中的类似示例:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
for ($i = 1; $i <= 10 ; $i++) {
print "$i\n";
sleep(1);
}
print "Done.";
Run Code Online (Sandbox Code Playgroud)
此链接表示从Apache 1.3 CGI输出应该是无缓冲的(但这可能仅适用于Apache 1.x):http://httpd.apache.org/docs/1.3/misc/FAQ-F.html#nph-scripts
有任何想法吗?
我在学校的Web脚本课上,正在完成我的第一个任务.我倾向于过度开展事情并深入研究我的课程,而不是课程所要求的.现在我正在研究CGI.pm来做我的HTTP请求,它说CGI.pm有两种编程风格:
除非我忽略了明确的答案,或者我没有足够的知识从我在http://perldoc.perl.org/CGI.html提供的文档中辨别出自己的答案.我只是不知道使用的利弊是什么这两种风格不同.
有了这个说,使用这两种不同风格的利弊是什么?哪一个更常用?至于使用面向对象的样式,它说我当时只能使用一个CGI对象.这是为什么?
感谢你的帮助.你们都为我学习计算机科学非常愉快,满意和有益.= d
我不知道这里可能出现什么问题:
我有一些来自Biopython的模块,我可以在使用交互式提示或通过命令行执行python脚本时轻松导入.
问题是,当我尝试在web可执行的cgi脚本中导入相同的biopython模块时,我得到一个"导入错误"
:没有名为Bio的模块
这里有什么想法?
我有一个python脚本,我想知道请求是来自Web还是命令行.我怎样才能做到这一点?
我正在编写一个可以从命令行和网页运行的Perl脚本.该脚本接收几个参数,如果它从命令行开始,则通过$ ARGV读取这些参数,如果从网页开始,则从CGI读取这些参数.我怎样才能做到这一点?
my $username;
my $cgi = new CGI;
#IF CGI
$username = $cgi->param('username');
#IF COMMAND LINE
$username = $ARGV[0];
Run Code Online (Sandbox Code Playgroud) 根据IIS.net的指南,使用WP-SuperCache在IIS 7(Windows Server 2008)上运行WordPress .
运行良好,但最近我们更改了一些文件夹和管理员密码的权限,我们的CPU使用率因PHP-cgi.exe进程而大幅增加.


这让我相信它不是缓存,但页面本身在底部有"缓存与WP-SuperCache"注释,并且缓存似乎正常工作.
这还有什么问题呢?
我有一种情况,我打开一个基于$ _SERVER ['REMOTE_USER']变量的文件.我认为这不是恶搞,但我想确认一下.我不想让自己容易阅读任意文件:
<?
$user = $_SERVER['REMOTE_USER'];
$fp = fopen("./$user.png","r");
?>
Run Code Online (Sandbox Code Playgroud) 开发环境是OS X 10.10.3,Perl -v
This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)
Run Code Online (Sandbox Code Playgroud)
这是问题所在
我将项目从本地环境移动到Windows Server,现在我收到以下错误:
"引用的密钥在CGI/Router.pm第94行是实验性的."
该模块的第94行显示
my $num_regexes = scalar keys $token_regexes;
Run Code Online (Sandbox Code Playgroud)
整个模块可以在这里找到https://github.com/kristiannissen/CGIRouter
我像这样实例化路由器模块
$router->add_route( 'GET', '/home', sub {
print header( -type => 'text/html', -charset => 'utf-8' );
print "Hello Pussy";
});
Run Code Online (Sandbox Code Playgroud)
我在本地没有这个问题,但现在我正在转向生产服务器,我遇到了这个问题.据我所知,它与特定的Perl版本有关,但在我要求提供商升级Perl之前,我想我能做些什么来避免这个问题?
这个简单的代码段显示了我在Perl中使用JSON :: XS编码的问题:
#!/usr/bin/perl
use strict;
use warnings;
use JSON::XS;
use utf8;
binmode STDOUT, ":encoding(utf8)";
my (%data);
$data{code} = "Gewürztraminer";
print "data{code} = " . $data{code} . "\n";
my $json_text = encode_json \%data;
print $json_text . "\n";
Run Code Online (Sandbox Code Playgroud)
产生的输出是:
johnnyb@boogie:~/Projects/repos > ./jsontest.pl
data{code} = Gewürztraminer
{"code":"Gewürztraminer"}
Run Code Online (Sandbox Code Playgroud)
现在,如果我注释掉上面的binmode行,我得到:
johnnyb@boogie:~/Projects/repos > ./jsontest.pl
data{code} = Gew?rztraminer
{"code":"Gewürztraminer"}
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?请注意,我正在尝试在不能使用binmode的perl CGI脚本中修复此行为,但我总是在JSON流中返回上面返回的"¼"字符.我该如何调试?我错过了什么?