gpt4 book ai didi

http - 在 Prolog 中处理 PWP HTML 页面内的 http 查询字符串

转载 作者:可可西里 更新时间:2023-11-01 16:38:28 26 4
gpt4 key购买 nike

我目前正在做一个项目,需要一些用 Prolog 编写的 Web 应用程序,我选择使用著名的 SWI-Prolog PWP 库。它在 HTML 文件中解析 带有 prolog 查询的脚本

我有一个响应以下请求示例的页面:

/user?id=N

其中 N 是一个整数值。

但是我无法读取 HTML 文件中请求的查询字符串 ID

我有 .pl 文件:

showUser(UserId, Request) :- 
reply_pwp_file(mydir('user_page.html'), [mime_type('text/html')], Request).

我不知道如何读取 UserIdRequest 以再次检索查询字符串中的 UserId。

我在 HTML 标记中尝试过这种方式:

<span pwp:ask="http_parameters(Request, [id(UserId, [optional(true)])])." pwp:use="UserId" />

以前有人遇到过这种麻烦吗?

非常感谢。

这里有一些可能对我们有帮助的有趣链接:

最佳答案

我花了一些时间,但至少我已经能够运行我在 ~/pl-devel/packages/http/examples 中找到的 demo_pwp.pl。现在,之后

?- server(1234).

我打开网址

http://localhost:1234/user_id.pwp?user_id=1&user_name=carlo

我在 ~/pl-devel/packages/http/examples/pwp/user_id.pwp 文件中写的地方

<?xml version="1.0"?>
<!DOCTYPE html>

<html xmlns:pwp="http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl">

<head>
<title>Context variables for PWP scripts</title>
</head>
<body>
<p>This PWP demo lists the context-parameters that are passed into
the script.
</p>
<ul>
<li pwp:ask="member(Name=Value, CONTEXT)">
<span class=name pwp:use="Name"/>
=
<span class=value pwp:use="writeq(Value)"/>
</li>
</ul>
<!-- here is the specific part for my answer -->
<p pwp:ask="memberchk('QUERY'=Q, CONTEXT),memberchk(user_id=UID,Q),memberchk(user_name=NAME,Q)">
UID : <span pwp:use="UID"/> / NAME : <span pwp:use="NAME"/>
</p>
<!-- nested access is well thought -->
<p pwp:ask="member('QUERY'=Q,CONTEXT)">
UID : <span pwp:use="UID" pwp:ask="member(user_id=UID,Q)"/>
/ NAME : <span pwp:use="NAME" pwp:ask="member(user_name=NAME,Q)"/>
</p>
</body>

</html>

(这是 context.pwp 的副本,在底部添加了我的信息)我得到了

This PWP demo lists the context-parameters that are passed into the script.
...
- QUERY = [user_id='1',user_name=carlo]
...
UID : 1 / NAME : carlo
UID : 1 / NAME : carlo

然后我可以确认 Giulio 建议的指南是可以的。

关于http - 在 Prolog 中处理 PWP HTML 页面内的 http 查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15887958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com