annotate common-functions.inc @ 89:fd39d7d5e9be

Branch merge.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Wed, 17 Oct 2012 20:43:25 +0200
parents 7a9c45b53866
children aafc23919e79
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
74196528fc64 Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
1 <?php
51
2cfea6e84694 Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 46
diff changeset
2 /**
2cfea6e84694 Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 46
diff changeset
3 * @file
2cfea6e84694 Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 46
diff changeset
4 * Functionality which doesn't belong anywhere else
2cfea6e84694 Documentation update.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 46
diff changeset
5 */
69
dd4ddedca4c5 Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 68
diff changeset
6 include_once 'ScriptIncludeCache.inc';
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 34
diff changeset
7
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
8 /// @cond
52
3898353ed1d8 Include fixes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 46
diff changeset
9 $baseDir = dirname(__FILE__);
3898353ed1d8 Include fixes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 46
diff changeset
10
68
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 66
diff changeset
11 $cache = ScriptIncludeCache::instance(__FILE__);
58
ba5afd9ff24e Rename http-response-status-codes to StatusCodes
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 53
diff changeset
12 $cache->includeOnce('StatusCodes.inc', $baseDir);
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
13 /// @endcond
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 34
diff changeset
14
88
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
15 class RequestException extends RuntimeException
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
16 {
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
17 private $_info;
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
18
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
19 function __construct($info)
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
20 {
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
21 $this->_info = $info;
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
22 if (array_key_exists('error', $info)) {
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
23 parent::__construct($info['error']);
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
24 }
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
25 }
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
26
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
27 function info()
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
28 {
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
29 return $this->_info;
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
30 }
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
31 }
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
32
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
33 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
34 * Generates a representation for an array of key => value pairs
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
35 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
36 * @note Behaviour is undefined if value is a composite structure.
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
37 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
38 * @param $map the input array
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
39 * @return a string representation that may be eval'ed
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
40 */
46
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
41 function repMapString($map)
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
42 {
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
43 $opt = 'array(';
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
44 $start = True;
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
45
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
46 foreach($map as $param => $value) {
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
47 if ($start) {
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
48 $start = False;
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
49 $opt .= "\"${param}\" => \"${value}\"";
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
50 }
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
51 else {
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
52 $opt .= ", \"${param}\" => \"${value}\"";
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
53 }
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
54 }
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
55 $opt .= ')';
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
56 return $opt;
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
57 }
15879e2aab65 Function for converting a stringmap to EVALable function.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 45
diff changeset
58
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
59 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
60 * Get the location on the server where the top level script is
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
61 * located
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
62 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
63 * @return directory
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
64 */
39
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 34
diff changeset
65 function basePath()
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 34
diff changeset
66 {
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 34
diff changeset
67 $l = strrpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['SCRIPT_NAME']);
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 34
diff changeset
68 return substr($_SERVER['SCRIPT_FILENAME'], 0, $l);
bd82b719a0de Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 34
diff changeset
69 }
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
70
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
71 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
72 * Loads a file
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
73 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
74 * @param $sFilename name of the file to load
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
75 * @param $sCharset the character encoding of the file
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
76 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
77 * @todo make this function throw instead of returning codes
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
78 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
79 * @return the contents of the file, or a status code (-3 if file does
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
80 * not exists, if file could not be opened -2)
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
81 */
4
74196528fc64 Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
82 function loadFile($sFilename, $sCharset = 'UTF-8')
74196528fc64 Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
83 {
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
84 if (floatval(phpversion()) >= 4.3) {
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
85 if (!file_exists($sFilename))
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
86 return -3;
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
87 $sData = file_get_contents($sFilename);
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
88 }
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
89 else {
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
90 if (!file_exists($sFilename))
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
91 return -3;
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
92 $rHandle = fopen($sFilename, 'r');
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
93 if (!$rHandle)
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
94 return -2;
34
ca76d31b7d48 Whitespace clean.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 33
diff changeset
95
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
96 $sData = '';
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
97 while(!feof($rHandle))
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
98 $sData .= fread($rHandle, filesize($sFilename));
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
99 fclose($rHandle);
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
100 }
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
101 if ($sEncoding = mb_detect_encoding($sData, 'auto', true) != $sCharset) {
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
102 if ($sEncoding != 1) {
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
103 $sData = mb_convert_encoding($sData, $sCharset, $sEncoding);
4
74196528fc64 Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
104 }
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
105 }
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
106 return $sData;
4
74196528fc64 Refac to use xml as input, and remove filters and helper-functions from
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
107 }
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
108
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
109 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
110 * Generate a status page and exit
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
111 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
112 * @param $errorText the text to be displayed in the body
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
113 * @param $errorCode the status code to be served
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
114 */
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
115 function errorPage($errorText, $errorCode = 403)
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
116 {
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
117 header(StatusCodes::httpHeaderFor($errorCode));
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
118 print "<div id=\"page\"><h1>${errorText}</h1></div>";
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
119 exit;
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
120 }
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
121
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
122 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
123 * Generates an URL for the specified parameters
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
124 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
125 * @param $urlParams an associative array of the values already set
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
126 * @param $keys a set of values to override $urlParams
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
127 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
128 * @param $nonQueryParams a list of keys, where values should be in
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
129 * the URL, rather than the query part, note that the order is
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
130 * important
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
131 */
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
132 function genUrl($urlParams, $keys = array(), $nonQueryParams = array()) {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
133 $out = '';
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
134 $first = 1;
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
135 $new_params = $urlParams;
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
136 foreach($keys as $param => $val) {
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
137 $new_params[$param] = $val;
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
138 }
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
139
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
140 foreach($nonQueryParams as $nqp) {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
141 if (array_key_exists($nqp, $new_params)) {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
142 $val = $new_params[$nqp];
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
143 if ($val)
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
144 $out .= "/${val}";
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
145 unset($new_params[$nqp]);
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
146 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
147 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
148
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
149 foreach($new_params as $param => $val) {
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
150 if ($val) {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
151 if($first) {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
152 $first = 0;
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
153 $out .= "?";
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
154 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
155 else
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
156 $out .= "&amp;";
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
157 $out .= urlencode($param) . '=' . urlencode($val);
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
158 }
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
159 }
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
160
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
161 return $out;
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
162 }
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
163
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
164 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
165 * Retrieves a single subelement
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
166 * @throw Exception if number of elements are different from 1
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
167 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
168 * @todo Throw more specific exception
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
169 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
170 * @param $obj the xml element to search in
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
171 * @param $name the name of the element to search for
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
172 */
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
173 function getElementByTagName($obj, $name) {
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
174 $elems = $obj->getElementsByTagName($name);
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
175 if ($elems->length != 1) {
83
ff5fc61aa5ea Throw only specific exceptions, eg. non of type Exception base.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 73
diff changeset
176 throw new UnexpectedValueException("More than one tag with name \"${name}\"");
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
177 }
33
511b6514823f Remove more globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 13
diff changeset
178 $elem = $elems->item(0);
6
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
179 return $elem;
6c0162497d56 Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 5
diff changeset
180 }
8
19dfa6f3e2be Support for scripts.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 6
diff changeset
181
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
182 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
183 * Checks if one string start with another string
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
184 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
185 * @param $haystack the string to search
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
186 * @param $needle the string to search for
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
187 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
188 * @return bool if match
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
189 */
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
190 function startswith($haystack, $needle)
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
191 {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
192 return strpos($haystack, $needle) === 0;
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
193 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
194
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
195 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
196 * Checks if one string ends with another string
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
197 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
198 * @param $haystack the string to search
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
199 * @param $needle the string to search for
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
200 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
201 * @return bool if match
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
202 */
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
203 function endsWith($haystack, $needle)
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
204 {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
205 $l = strlen($haystack) - strlen($needle);
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
206 return strrpos($haystack, $needle) === $l;
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
207 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
208
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
209 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
210 * Queries a URL for headers
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
211 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
212 * @param $url the url to query
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
213 * @return an associative array of all headers returned
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
214 */
88
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
215 function getHeaders($url, $timeout = 1)
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
216 {
88
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
217 $response = @http_head($url, array("timeout" => $timeout), $info);
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
218
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
219 if (array_key_exists('error', $info) && $info['error']) {
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
220 throw new RequestException($info);
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
221 }
7a9c45b53866 Add possibility to validate using validator.w3.org
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 83
diff changeset
222
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
223 $headers = array();
73
947d53f95ccd Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
224 $response = trim($response);
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
225 $str = explode("\n", $response);
73
947d53f95ccd Refactor Sitemap into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
226 $headers[''] = trim($str[0]);
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
227 foreach($str as $kv) {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
228 $p = strpos($kv, ":");
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
229 if ($p) {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
230 $key = substr($kv, 0, $p);
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
231 $value = trim(substr($kv, $p + 1));
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
232 $headers[$key] = $value;
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
233 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
234 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
235 return $headers;
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
236 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
237
66
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
238 /**
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
239 * Generates the query part of an URI
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
240 *
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
241 * @param $opts an associative array of options
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
242 * @return a string that can be used for the query part of an URI
74f7b64bdb78 Lots of documentation fixes, and removal of unused function getXmlContent
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 61
diff changeset
243 */
45
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
244 function opttostring($opts)
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
245 {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
246 $str = '';
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
247 foreach (array_keys($opts) as $key) {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
248 $value = $opts[$key];
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
249 if ($str) {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
250 $str .= "&${key}=${value}";
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
251 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
252 else {
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
253 $str = "?${key}=${value}";
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
254 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
255 }
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
256 return $str;
6c2c6acba30c Support for hardcoding parameters.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 40
diff changeset
257 }
5
18aafb1a8986 Better handling of errors and globals.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 4
diff changeset
258 ?>