Page 1 of 1

请教:全局变量的使用

Posted: Jan 24 2011, 18:05
by 不夜侯
全局变量怎样使用,试了许多次没有成功。
sidki规则变量绕来绕去太复杂没看懂。
想以一个简单的例子请教,方便我琢磨。谢谢!
我制作了一个规则,实际生效。

Code: Select all

[Patterns]
Name = "Killad_src_script"
Active = FALSE
URL = "$TYPE(htm)"
Bounds = "<script\s*</script>"
Limit = 256
Match = "[^>]++\s(src=$AV(\0))\1*"
        "$TST(\0=(*//(^\h|local.ptron)*&&((us.|)(code|ucpn)[0-9]+.*|[^/]++.(ad[a-z]++|alimama|allyes|[a-z]++ad).*|[^?]++\?[a-z_\-]++{2,12}=*|[^/]+\w/[0-9]+{2,18}.js|[^/]+\w/?.js)))"
Replace = "<prox killad_script_\1 />\r\n"

我想将以下值做为一个全局变量,在其它规则中也可以调用。

Code: Select all

(*//(^\h|local.ptron)*&&((us.|)(code|ucpn)[0-9]+.*|[^/]++.(ad[a-z]++|alimama|allyes|[a-z]++ad).*|[^?]++\?[a-z_\-]++{2,12}=*|[^/]+\w/[0-9]+{2,18}.js|[^/]+\w/?.js))
因此将上面的规则重写,但无效。

Code: Select all

[Patterns]
Name = "Killad_src_script"
Active = FALSE
URL = "$TYPE(htm)"
Bounds = "<script\s*</script>"
Limit = 256
Match = "[^>]++\s(src=$AV(\0))\1*"
        "$TST(\0=$GET(adsrc1))"
        "$SET(adsrc1=(*//(^\h|local.ptron)*&&((us.|)(code|ucpn)[0-9]+.*|[^/]++.(ad[a-z]++|alimama|allyes|[a-z]++ad).*|[^?]++\?[a-z_\-]++{2,12}=*|[^/]+\w/[0-9]+{2,18}.js|[^/]+\w/?.js)))"
Replace = "<prox killad_script_\1 />\r\n"
这个问题应该会者不难,请大家指点下。同时全局变量$SET(adsrc1) 在其它规则怎样调用?
另好像全局变量不能和过滤名单这么写,直接崩溃。

Code: Select all

$SET(adsrc1=*$LST(Ad_src)*)

Re: 请教:全局变量的使用

Posted: Jan 25 2011, 22:20
by red
试下先set后get

Code: Select all

[Patterns]
Name = "Killad_src_script"
Active = FALSE
URL = "$TYPE(htm)"
Bounds = "<script\s*</script>"
Limit = 256
Match = "[^>]++\s(src=$AV(\0))\1*"
        "$SET(adsrc1=(*//(^\h|local.ptron)*&&((us.|)(code|ucpn)[0-9]+.*|[^/]++.(ad[a-z]++|alimama|allyes|[a-z]++ad).*|[^?]++\?[a-z_\-]++{2,12}=*|[^/]+\w/[0-9]+{2,18}.js|[^/]+\w/?.js)))"
        "$TST(\0=$GET(adsrc1))"
Replace = "<prox killad_script_\1 />\r\n"

Re: 请教:全局变量的使用

Posted: Jan 25 2011, 22:38
by phoenix
请注意在将 * ^ 这些 meta characters 设置为变量值的时候,它们都将失去特殊含义,而只有字面上的意义。