【问题标题】:How to Implement Grep into CGI script Please?请问如何在CGI脚本中实现Grep?
【发布时间】:2010-05-06 06:15:38
【问题描述】:

我很难弄清楚如何在我的 CGI 脚本中实现 grep。基本上我会收到一个值,例如。 1500 来自 HTML 页面。然后 CGI 脚本运行并将 1500 与文本文件进行比较。当它找到 1500 时,它会打印整行并将其显示在网页上。我想要一些关于如何做到这一点的提示和指示。我知道这涉及到 grep,但我真的不知道如何放入。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *data;
long m,n;
printf("%s%c%c\n",
"Content-Type:text/html;charset=iso-8859-1",13,10);
printf("<TITLE>Webpage of Results</TITLE>\n");
printf("<H1>Temperatures</H1>\n");
data = getenv("QUERY_STRING");

HTML 传递变量 time=1500。我了解(如果我错了,请纠正我)QUERY_STRING 将包含 1500?

【问题讨论】:

  • 你的 CGI 脚本必须是 C 语言吗?这样的事情在另一种语言中会简单得多,例如Perl。
  • 不幸的是,是的,我知道这在 perl 中会容易得多,因为我已经看到了很多这样的例子。

标签: html c cgi


【解决方案1】:

C 中 grep 的一些非常直接的模拟是 strstr() 函数

【讨论】:

  • 我快速浏览了 strstr()。据我了解,它是在PHP中使用的?
【解决方案2】:

对于 whatever?query-string 形式的 URL,环境变量 QUERY_STRING 包含完整的 query-string - 在您的情况下为 time=1500 或类似的。

您需要记住,传递的字段/值可能不止一个,由&amp; 分隔。通过使用strtok(),您可以逐一检索查询字符串的各个部分,strcmp() 让您可以将它们与其他字符串进行比较。

如果您找到了正确的令牌,您需要使用文件:

【讨论】:

  • 嗨 gf,感谢您的回复,我知道我不会有任何其他变量(目前),因为我专门设计了这样的 HTML 表单。需要先让一个变量工作,然后再添加更多呵呵。根据您的说法,我根本不需要使用 grep?
  • 永远不要相信任何东西都能准确地发送给你想要的东西:) grep 你的意思是调用外部进程吗?我建议您自己在 C 中执行此操作 - 调用 grep 并检索其输出并不容易。
  • 嗯...我希望它能发送给我我想要的东西哈哈。好吧,基本上我会解释我想做的事情:当收到 TIME (1500) 打开文本文件并查找字符串 (1500) 将字符串打印到 HTML。真的就这么简单,但我不知道该怎么做>
  • @Joey:更新了基本大纲,应该可以帮助您继续(和阅读)。
猜你喜欢
  • 2016-12-05
  • 2011-04-29
  • 1970-01-01
  • 2019-02-20
  • 2017-04-24
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
相关资源
最近更新 更多