3.7.3 手动关联
手动关联是关联应用的最有效手段,通过手动关联函数web_reg_save_param()将想要的字符串保存到一个参数中。通过关联可以捕获服务器返回的标题或正文的文本内容,也可以用来捕获服务器返回的超链接,比如需要获得Discuz!NT2.5论坛版面下的置顶和非置顶帖中顶端帖子的ID。
打开论坛版面,可以看到该板块的所有帖子列表。为了获得需要关联的帖子ID,首先需要分析一下置顶帖的左右边界。
1.关联置顶帖ID
打开源代码,可以发现置顶帖的代码如下所示(代码格式考虑美观略微调整):
<td class="folder"> <a href="showtopic-407.aspx" target="_blank"> <img src="templates/default/images/t_top3.gif"/></a> </td> <td class="icon"> </td> <th class="common"> <label> <img src="templates/default/images/attachment.gif" alt="附件"/> </label> <img src="templates/default/images/no-sublist.gif" id="imgButton_407" alt="闭合帖子列表"/><a href="showtopic-407.aspx">置顶帖1</a> </th> |
决定帖子ID 407的数据是上面代码中带下画线的内容,t_top后的数字并不包含在其中,因为不同的置顶等级决定了该数据的变化。所以可以通过设置左边界为<a href="showtopic- ,右边界为.aspx" target="_blank"><img src="templates/default/images/t_top 来实现对置顶帖ID的关联操作。编写代码完成关联置顶帖中第一个帖子ID的操作,代码如下(\为转义符):
web_reg_save_param("topicid", "LB=<a href=\"showtopic-", "RB=.aspx\" target=\"_blank\"><img src=\"templates/default/images/t_top", "Ord=1", "Search=NoResource", LAST); web_url("Topic", "URL=http://127.0.0.1/showforum-1.aspx", "Resource=0", "Referer=", LAST); |
设置日志显示,运行后即可获得置顶帖对应的ID。