【发布时间】:2012-04-09 16:57:36
【问题描述】:
好的。那么,我们以 PHP 为例。
- 我在浏览器中输入一个 URL,请求一个 php 脚本。 (例如
http://www.somedomain.com/index.php) - 浏览器将该请求发送到相应的服务器。
- 服务器识别 - 通过它的扩展名 (
.php) - 那就是它是一个 PHP 文件。 - PHP 解释器处理文件并输出结果。
- 服务器发回输出。
现在,假设我们正在处理一个......自制解释器 XYZ(及其二进制文件等),处理例如.xyz 文件。
我应该怎么做,所以以上所有内容都对我的 XYZ 解释器有效?
我应该如何设置这一切,以使其正常工作?
提示:我不是在寻求关于如何编写解释器的帮助,而是关于如何使其以上述方式运行的帮助......
【问题讨论】:
-
首先阅读您的网络服务器文档,了解如何为您想要的任何文件类型添加新的“处理程序”。除此之外,您的问题无法回答。浏览器与此无关,因为您处理的是纯粹的服务器端代码。
-
您需要配置 Apache 或任何网络服务器来告诉他们“嘿,这是一种新语言,XYZ,这是您如何解释它,并使用 XYZ 与以 .xyz 结尾的文件”。这不是一件容易的事。
-
您的问题似乎不太清楚。解释器是否与 PHP 兼容、网络服务器软件或某些 Apache/其他插件?我猜它会像 PHP 一样输出 HTML?
-
上述前两个 cmets 的组合(“...无法回答”部分除外)将是一个很好的答案。如果假设 Apache 是您的 HTTP 服务器,那么您将在 .htaccess 文件中放置一个 AddHander 行。我进行了搜索以查看您如何将输出返回到 apache 并找到了这个线程:stackoverflow.com/questions/2772400/… 这不仅有助于将输出返回到 apache,而且有助于将所有标头等输入解析器。
-
您几乎可以使用任何脚本解释器。在最简单的情况下,只需将其用作
CGI解释器,方法是使脚本可执行并为其提供标准的.cgi扩展名。使用#!/usr/bin/awk的shebang,您可以使用它。 (配置特定的扩展以实现这种行为是第 2 步,最简单的是使用 RewriteRule。)
标签: php interpreter server-side