|
|
Section Intro: Variables
VariablesSynopsis:Meta-HTML provides a simple mechanism for the storage and retrieval of variables during a single (possibly recursive) processing pass. In addition to this, functions are provided which test the value of a variable, and conditionally execute other code based upon the result. There is also a mechanism to group a set of variables using Packages. Commands: More Information:
Variable Types and Information
There are internal functions in Meta-HTML which create binary
variables. Such variables cannot be used in the ordinary way, since
the data contained within them may not retain integrity once printed
out and read back in. You can check to see what the type of a
particular variable is with the Many variables are predefined by Meta-HTML, and made available to the page writer. The Page Variables section of this manual documents those variables fully, while the Server Variables section contains more information on variables which control, or were specifically created by, the web server.
Concatenate the contents of COLLECTOR and the supplied BINARY-VARs into a single binary variable, and store the results back in COLLECTOR.
Decode STRING into PACKAGE. If PACKAGE is not specified the current package is used.
STRING is a string that might have appeared in
FOO=bar&STRING=this+is+a+string%2C+other+chars PACKAGE is the name of a package to bind the variables in. So, given the above example as the text in a variable called STRING, here is what you get:
<set-var string="FOO=bar&STRING=this+is+a+string%2C+other+chars"> <cgi-decode <get-var string> mypack> <get-var mypack::string>produces: this is a string, other chars
Also see
A CGI readable string is created from the names of the VARs given,
and the associated values of those variables. For example, if the
variable
Given the optional keyword argument of PRESERVE-CASE=TRUE,
Finally, the keyword flag STRIP=TRUE, when present, says to
strip off the package name of each variable before placing it in an
assignment statement (also see
<set-var FOO::BAR=value> <cgi-encode Foo::Bar preserve-case=true strip=true>produces: Bar=value
Coerces VARNAME's data to have the type specified by the argument to TYPE. You can convert a binary object to a string object, and vice-versa.
A binary variable might be created as the result of a call to
<with-open-stream s /tmp/file mode=read> <stream-get-contents s foo> </with-open-stream> <p> <coerce-var foo type=string> <subst-in-string <get-var-once foo> "Hello" "Goodbye">
Return the length of the contents of VAR. If VAR is an array or string, returns the number of elements in the array. If VAR is a binary variable, returns the amount of data stored within. If VAR is a function, returns the empty string. <dir::read-file /etc/passwd myvar> ==> true <content-length myvar> ==> 864
Convert the contents of the binary variable named by VARNAME to be a sequence of hex characters.
Copies the variable FROM-VAR to each of the named TO-VARs. Each TO-VAR becomes the repository of a copy of the information already stored under FROM-VAR. This is a true copy; not an alias to the original variable.
<set-var foo=bar> <get-var foo> ==> bar <get-var new> ==> <copy-var foo new> ==> <get-var new> ==> bar <p> <copy-var *meta-html*::get-var *meta-html*::foo> <foo new> ==> bar
Subtract AMOUNT (default 1) from the contents of the variable named by VARNAME.
<set-var foo=1> <get-var foo> ==> 1 <decrement foo> <get-var foo> ==> 0
Also see
DEFault the value of the VARiable named by NAME to VALUE.
<define-tag defvar var &optional val>
<if <not <get-var <get-var-once var>>>
<set-var <get-var-once var>=<get-var-once val>>>
</define-tag>
Synonym for <get-var-eval>
Return the value of the NAMEs given. Each NAME is a
variable name which has had a value assigned to it with The values are returned in the order in which the NAMEs appear. Examples: <set-var foo=Var-1 bar=Var-2> <get-var-eval foo>, <get-var bar>produces: Var-1, Var-2
When multiple NAMEs are given: <set-var foo=Var-1 bar=Var-2> <get-var foo bar foo>produces: Var-1Var-2Var-1
Returns the current value of the variables named by the NAMEs given. The interpreter pointer is then moved to after the returned data, thus preventing further interpretation of the data. Example: <set-var bar=HELLO> <set-var-verbatim foo=<get-var bar>> <get-var-once foo> ==> <get-var bar>but... <get-var foo> ==> HELLO
Convert the string of hexadecimal digits passed in STRING to their binary contents, placing the result in VARNAME.
Add AMOUNT (default 1) to the contents of the variable named by VARNAME.
<set-var foo=1> <get-var foo> ==> 1 <increment foo> <get-var foo> ==> 2
Also see
Gives the variable NAME the value of VALUE for the current processing run. Any number of name/value pairs may be given, and whitespace is not significant. Where =VALUE is omitted, the value is the empty string.
<set-var foo=bar bar=baz> <get-var foo> ==> bar <get-var bar> ==> baz <get-var <get-var foo>> ==> baz
For each NAME specified, if that name is not already assigned a
value with
Once NAME has had a value assigned to it with
A useful construct for setting various site specific variables in your
Variables which can usefully benefit from this type of setting
include
Gives the variable NAME the value of VALUE for the
current processing run. The difference between
Example: <set-var-verbatim foo=<get-var bar>> <get-var-once foo>produces:
Returns information about the symbol SYMBOL. The information is returned in an alist containing:
For The size value is zero for all other variable types.
Make NAMEs be non-existent in the page environment.
This is different than Example: <set-var foo=""> <var-exists foo> ==> true <get-var foo> ==> <unset-var foo> <var-exists foo> ==>
The existence of a variable has nothing to do with its value -- a variable
exists if it has been created with
<set-var foo=1 bar> <var-exists foo> ==> true <var-exists bar> ==> true <get-var bar> ==> <unset-var foo> <var-exists foo> ==>
Edit Section
![]() The META-HTML Reference Manual V2.0 Copyright © 1995, 1998, Brian J. Fox Found a bug? Send mail to bug-manual@metahtml.org |