# ahtml **Repository Path**: mick2019/ahtml ## Basic Information - **Project Name**: ahtml - **Description**: 小巧、灵活、强大的服务端脚本语言 http://ahtml.aardio.org/ - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2021-05-25 - **Last Updated**: 2024-05-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 介绍 ahtml 是一个服务端脚本语言。ahtml 以 AAuto 作为母语言,即可以实现在 html 中嵌入 AAuto 代码,嵌入规则很简单,与 php 类似: ```html+php ... 第", index, "条: ", content, "

", '\r\n'); } ?> ... ``` 如果你希望代码读起来更加优美,也可以这样写: ```html+php ...

条:

... ``` ## 运行环境 ### 操作系统需求 ahtml 需要运行在 Windows 操作系统下,且 Windows 平台必须高于 Windows 2000。 ### 其他需求 由于 ahtml 是一个 FastCGI 应用,而且目前 ahtml 仅支持通过命名管道 (Named pipe) 的方式同 Web 服务器(FastCGI 宿主)实现数据交互,您需要一个支持 FastCGI 的 Web 服务器软件(如 IIS)。 ## 配置 ### Windows 2003 Server + IIS 6 #### 下载源码并发布为 exe 文件 下载或检出最新的工程源码文件,用 AAuto Quicker 将工程发布为 exe 文件。 #### 下载并安装 FastCGI for IIS6 IIS6 默认不支持 FastCGI,需要下载扩展。 下载地址: ``http://www.iis.net/downloads/microsoft/fastcgi-for-iis`` #### 配置 FastCGI 在命令提示符下运行:
``cscript fcgiconfig.js -add -section:"ahtml" -extension:ahtml -path:"{所在文件夹}/ahtmlcgi.exe"`` 如果服务器不支持或禁用了 ``cscript``,请用记事本程序打开并编辑 ``%WINDIR%\system32\inetsrv\fcigext.ini``,在其末尾添加: ```ini [Types] ahtml=ahtml [ahtml] ExePath={所在文件夹}/ahtmlcgi.exe ``` (其中的 ``{所在文件夹}`` 应替换为第一步发布的 exe 所在的文件夹路径) #### 配置 IIS 使之与 FastCGI 协同工作 1. 右击“网站”(或指定站点)选择“属性”,单击“主目录”选项,点击“配置”按钮。 2. 单击”添加“按钮,单击”浏览“,选中 ``%WINDIR%\system32\inetsrv\fcgiext.dll``。 3. 在扩展名里输入 ``.ahtml``,动作选择“限制为”,输入 ``GET,HEAD,POST``。 4. 确认“脚本引擎”和“检查文件是否存在”是否选择,如没选中,请选中。 5. 确认无误后,单击“确定”。 #### 重启 IIS 在命令提示符中输入并运行:``iisreset``。 ### Windows Server 2008 (或 Windows 7) + IIS7 及以上 #### 下载源码并发布为 exe 文件 下载或检出最新的工程源码文件,用 AAuto Quicker 将工程发布为 exe 文件。 #### 启用 FastCGI 组件 ##### Windows Server 2008 或 Server 2008 R2 UI 1. 单击“开始”,指向“管理工具”,然后单击“服务器管理器”。 2. 在“角色摘要”中,单击“添加角色”。 3. 使用“添加角色向导”添加“Web 服务器 (IIS)”角色。 4. 有关如何安装默认 IIS 7 Web 服务器的详细说明,请参阅 部署静态内容服务器 (IIS 7)。 5. 在“选择角色服务”页上,请记下默认情况下安装的预选角色服务,然后选择以下附加的角色服务:
``CGI`` 6. 在“要安装的功能摘要”页上,确认所做的选择,然后单击“安装”。 7. 在“安装结果”页上,确认已经成功安装了 Web 服务器 (IIS) 角色和所需角色服务,然后单击“关闭”。 ##### Windows Vista 或 Windows 7 UI 1. 单击“开始”,然后单击“控制面板”。 2. 在“控制面板”中,单击“程序”,然后单击“打开/关闭 Windows 功能”。 3. 在“Windows 功能”对话框中,单击“Internet 信息服务”以安装默认的功能,然后在“应用程序开发功能”部分中选择以下附加功能:
``CGI`` 4. 单击“确定”以关闭“Windows 功能”对话框。 #### 下载并安装 Administration Pack 用于 FastCGI 配置。IIS 7.5 及以上无需操作此步骤。 下载地址:``http://www.iis.net/downloads/microsoft/administration-pack`` #### 配置 IIS 使之与 FastCGI 协同工作 1. 打开 IIS 管理器,选中根节点(或指定站点),在右侧“功能视图”中双击进入“处理程序映射”。 2. 在右侧的“操作”面板中单击“添加模块映射”链接,将弹出“添加模块映射”对话框。 3. 在“请求路径”中输入 ``*.ahtml``,在“模块”下拉框中选中“FastCgiModule”。 4. 单击“可执行文件”右侧的“...”按钮,查找并选中刚才生成的 ``ahtmlcgi.exe`` 文件,在“名称”中填写 ``ahtml``。 5. 单击“请求限制...”按钮,在弹出的“请求限制”对话框中的“映射”选项卡中选中“仅当请求映射至以下内容时才调用处理程序”,并选择“文件”。 6. 单击“确定”按钮关闭“请求限制”对话框。 7. 单击“确定”按钮关闭“添加模块映射”对话框。 以上操作确认无误后,请重启 IIS。 #### 重启 IIS 使用管理员权限运行命令提示符,在命令提示符中输入并运行:``iisreset``。 ## 语法 ### 基本语法 ahtml 以 AAuto 作为母语言,因此 ahtml 支持 AAuto 所有的语法特性(包括基本流程语句、库引用机制等)。 ### 标准库 除 AAuto 内核库之外,ahtml 会自动引入一些标准库。另外,并不是所有的 AAuto 标准库都可以在 ahtml 中被引入。下面的表格展示了自动引入的标准库以及可引入的标准库。 库名称 | 是否自动引入 -------- | ------------- com | 是 console | 是 fsys | 否 util | 是 ### 扩展库 ahtml 也会引入 AAuto 中的一些扩展库。 库名称 | 是否自动引入 -------- | ------------- mysql | 是 preg | 否 ### 用户库 除标准库、扩展库之外,用户可自定义用户库。用户库放置在网站根目录下的一个名为 ``lib`` 的文件夹内,可被站点内的 ahtml 文件引入(用法与 AAuto 的用户库相同)。 ### 扩展对象 ahtml 作为服务端语言,同时作为 FastCGI 应用,需要处理来自 Web 服务器的客户端请求并作出响应。 简单地说,ahtml 的扩展对象有两个: 类型 | 对象名 -------- | ----------- 请求对象 | request 响应对象 | response #### 请求 (request) 对象 请求对象是用来获取来自 Web 服务器的客户端请求信息的(如 Web 服务端、站点信息,Query String、POST Data、附加协议头等)。 就目前而言,request 对象有四个键值对成员: 成员名 | 用途 -------- | ------------- server | 来源于服务器的信息,相当于 PHP 中的 ``$_SERVER`` 数组 post | 客户端的 POST Data,相当于 PHP 中的 ``$_POST`` 数组 get | 客户端的 Query String,相当于 PHP 中的 ``$_GET`` 数组 cookie | 客户端的 COOKIE,相当于 PHP 中的 ``$_COOKIE`` 数组 其操作方法如同 AAuto 中的普通键值对一样(需要注意的是,``request.cookie`` 比较特殊,不支持直接遍历。 范例: ```html+php request.server 测试
键名
``` 需要注意的是,实际应用时应在输出前转义 html 字符,以避免 XSS 攻击。