/[dtapublic]/to_be_filed/webprojs/php_libraries/php_lib_uculib_com/stdformat.inc
ViewVC logotype

Contents of /to_be_filed/webprojs/php_libraries/php_lib_uculib_com/stdformat.inc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 35 - (show annotations) (download)
Sat Oct 8 23:35:33 2016 UTC (8 years ago) by dashley
File size: 12752 byte(s)
Initial commit.
1 <?php
2 //********************************************************************************
3 //Copyright (C) 2007 David T. Ashley
4 //********************************************************************************
5 //This program or source file is free software; you can redistribute it and/or
6 //modify it under the terms of the GNU Lesser General Public License as published
7 //by the Free Software Foundation; either version 2 of the License, or (at your
8 //option) any later version.
9 //
10 //This program or source file is distributed in the hope that it will
11 //be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
12 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 //GNU General Public License for more details.
14 //
15 //You may have received a copy of the GNU Lesser General Public License
16 //along with this program; if not, write to the Free Software
17 //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 //********************************************************************************
19 //
20 //Obtains a data snapshot used for outputting web page
21 //statistics at the end of a page. This should be the first
22 //function call made. The data format is not proprietary (i.e.
23 //the caller is conceptually free to pick it apart).
24 //
25 function STDFORMAT_page_begin_snapshot()
26 {
27 $rv['time_rv'] = time();
28 $rv['getrusage_rv'] = getrusage();
29 return($rv);
30 }
31
32 //Returns the complete top portion of a web page as a string,
33 //formatted with newlines for human readability.
34 //
35 function STDFORMAT_page_top($in_snapshot,
36 $in_htmldeclaredtitle,
37 $in_htmlselfdonetitle,
38 $in_background,
39 $in_link,
40 $in_vlink,
41 $in_alink)
42 {
43 $rv = "<html>\n";
44 $rv .= "<head>\n";
45 $rv .= "<title>" . $in_htmldeclaredtitle . "</title>\n";
46 $rv .= "</head>\n";
47 $rv .= STDFORMAT_body_tag($in_background, $in_link, $in_vlink, $in_alink) . "\n";
48 $rv .= STDFORMAT_default_font_tag() . "\n";
49 $rv .= "<p align=\"center\">\n";
50 $rv .= "<font size=\"5\">\n";
51 $rv .= "<b>" . $in_htmlselfdonetitle . "</b>\n";
52 $rv .= "</font>\n";
53 $rv .= "</p>\n";
54 $rv .= STDFORMAT_hline_thin() . "\n";
55
56 return($rv);
57 }
58
59
60 //Returns the Google AdSense bottom banner that appears on most pages. All
61 //HTML is balanced and no other material is provided.
62 //
63 function STDFORMAT_advertising_bottom()
64 {
65 $rv = "<p align=\"center\">\n"
66 .
67 "<table border=\"0\" width=\"80%\">\n"
68 .
69 "<tr>\n"
70 .
71 "<td align=\"left\">\n"
72 .
73 "<script type=\"text/javascript\"><!--\n"
74 .
75 "google_ad_client = \"pub-0968676922395080\";\n"
76 .
77 "/* UCULIB, Left Bottom */\n"
78 .
79 "google_ad_slot = \"7493291831\";\n"
80 .
81 "google_ad_width = 300;\n"
82 .
83 "google_ad_height = 250;\n"
84 .
85 "//-->\n"
86 .
87 "</script>\n"
88 .
89 "<script type=\"text/javascript\"\n"
90 .
91 "src=\"http://pagead2.googlesyndication.com/pagead/show_ads.js\">\n"
92 .
93 "</script>\n"
94 .
95 "</td>\n"
96 .
97 "<td align=\"center\">\n"
98 .
99 "<script type=\"text/javascript\"><!--\n"
100 .
101 "google_ad_client = \"pub-0968676922395080\";\n"
102 .
103 "/* UCULIB, Center Bottom */\n"
104 .
105 "google_ad_slot = \"1148830860\";\n"
106 .
107 "google_ad_width = 300;\n"
108 .
109 "google_ad_height = 250;\n"
110 .
111 "//-->\n"
112 .
113 "</script>\n"
114 .
115 "<script type=\"text/javascript\"\n"
116 .
117 "src=\"http://pagead2.googlesyndication.com/pagead/show_ads.js\">\n"
118 .
119 "</script>\n"
120 .
121 "</td>\n"
122 .
123 "<td align=\"right\">\n"
124 .
125 "<script type=\"text/javascript\"><!--\n"
126 .
127 "google_ad_client = \"pub-0968676922395080\";\n"
128 .
129 "/* UCULIB, Right Bottom */\n"
130 .
131 "google_ad_slot = \"7526152668\";\n"
132 .
133 "google_ad_width = 300;\n"
134 .
135 "google_ad_height = 250;\n"
136 .
137 "//-->\n"
138 .
139 "</script>\n"
140 .
141 "<script type=\"text/javascript\"\n"
142 .
143 "src=\"http://pagead2.googlesyndication.com/pagead/show_ads.js\">\n"
144 .
145 "</script>\n"
146 .
147 "</td>\n"
148 .
149 "</tr>\n"
150 .
151 "</table>\n"
152 .
153 "</p>\n"
154 ;
155 return($rv);
156 }
157
158
159 //Returns the complete bottom portion of a web page. This starts
160 //from the horizontal line delineating the footer and moves downward.
161 //Newlines are included for human-friendly reading.
162 //
163 function STDFORMAT_page_bottom($in_snapshot)
164 {
165 //Make the second call to get more resource usage data, which will be
166 //used to display system and user time consumed.
167 $ru2 = getrusage();
168
169 $rv = STDFORMAT_std_footer($in_snapshot['time_rv'], $ru2, $in_snapshot['getrusage_rv']);
170
171 $rv .= "</font>\n";
172 $rv .= "</body>\n";
173 $rv .= "</html>\n";
174 return($rv);
175 }
176
177 //Returns the HTML for the standard footer of a web page, including top
178 //and bottom horizontal lines. All HTML is balanced. Newlines
179 //are provided for human readability of the HTML.
180 //
181 function STDFORMAT_std_footer($in_time, $in_ru2, $in_ru1)
182 {
183 $rv = STDFORMAT_hline_thin() . "\n";
184 $rv .= "<font size=\"2\">\n";
185 $rv .= "<p align=\"center\" style=\"margin-top:0; margin-bottom:0\">\n";
186 $rv = $rv . STDFORMAT_std_footer_text($in_time, $in_ru2, $in_ru1);
187 $rv .= "</p>\n";
188 $rv .= "</font>\n";
189 $rv .= STDFORMAT_hline_thick() . "\n";
190 return($rv);
191 }
192
193 //Returns the HTML for the text occurring in the standard footer of a web page,
194 //with no newlines or preceding horizontal lines or following horizontal lines.
195 //No HTML formatting codes are used.
196 //
197 function STDFORMAT_std_footer_text($in_time, $in_ru2, $in_ru1)
198 {
199 //Figure out the total, system, and user time to generate.
200 STDFORMAT_getrusagediff($in_ru2, $in_ru1, $out_totaltime, $out_systime, $out_usertime);
201
202 $rv = "This web page was obtained from the server at ";
203 $rv .= date("H:i:s", $in_time)
204 . " on "
205 . date("l, ", $in_time)
206 . date("F j, Y", $in_time)
207 . " (UTC " . date("O", $in_time)
208 . ", server time), and required approximately " . $out_totaltime . "s CPU time (" . $out_systime . "s system, "
209 . $out_usertime . "s user) to generate.&nbsp; ";
210 $rv .= "Please contact <a href=\"mailto:"
211 . STDFORMAT_webmaster_email()
212 . "\">" . STDFORMAT_webmaster_name() . "</a> with any feedback about this "
213 . "web page.\n";
214 return($rv);
215 }
216
217 //Returns the <body> HTML tag for a standard web page, which includes the
218 //link colors (on demand) and specification of the background to
219 //use. No newline is included.
220 //
221 //The caller may optionally override the background and may also
222 //optionally override the link, vlink, and alink specification.
223 //For these specifications:
224 // "" means use the default.
225 // FALSE means don't specify them in the body.
226 // Any other value means use that instead.
227 //
228 function STDFORMAT_body_tag($in_background, $in_link, $in_vlink, $in_alink)
229 {
230 $rv = "<body";
231
232 if ($in_background === "")
233 {
234 //Default
235 //
236 $rv .= " background=\"/backgrounds/bk_garlic.jpg\"";
237 }
238 else if ($in_background !== FALSE)
239 {
240 //Use the passed specification instead.
241 $rv .= (" background=\"" . $in_background . "\"");
242 }
243 else
244 {
245 //Don't include it.
246 }
247
248 if ($in_link === "")
249 {
250 //Default
251 //
252 $rv .= " link=\"#4040C0\"";
253 }
254 else if ($in_link !== FALSE)
255 {
256 //Use the passed specification instead.
257 $rv .= (" link=\"" . $in_link . "\"");
258 }
259 else
260 {
261 //Don't include it.
262 }
263
264 if ($in_vlink === "")
265 {
266 //Default
267 //
268 $rv .= " vlink=\"#4040C0\"";
269 }
270 else if ($in_vlink !== FALSE)
271 {
272 //Use the passed specification instead.
273 $rv .= (" vlink=\"" . $in_vlink . "\"");
274 }
275 else
276 {
277 //Don't include it.
278 }
279
280 if ($in_alink === "")
281 {
282 //Default
283 //
284 $rv .= " alink=\"#4040C0\"";
285 }
286 else if ($in_alink !== FALSE)
287 {
288 //Use the passed specification instead.
289 $rv .= (" alink=\"" . $in_alink . "\"");
290 }
291 else
292 {
293 //Don't include it.
294 }
295
296 $rv .= ">";
297
298 return($rv);
299 }
300
301 //Returns the system time and user time, as strings in seconds,
302 //corresponding to the difference between the first getrusage()
303 //call and the second getrusage() call.
304 //
305 function STDFORMAT_getrusagediff($in_ru_second, $in_ru_first, &$out_totaltime, &$out_systime, &$out_usertime)
306 {
307 //echo "\n";
308 //echo print_r($in_ru_first);
309 //echo "\n";
310 //echo print_r($in_ru_second);
311 //echo "\n";
312
313 //System time.
314 //
315 if ($in_ru_second['ru_stime.tv_usec'] >= $in_ru_first['ru_stime.tv_usec'])
316 {
317 //Can do a straight subtract with no borrow.
318 $systime_secs = $in_ru_second['ru_stime.tv_sec'] - $in_ru_first['ru_stime.tv_sec'];
319 $systime_usecs = $in_ru_second['ru_stime.tv_usec'] - $in_ru_first['ru_stime.tv_usec'];
320 }
321 else
322 {
323 //Need a borrow.
324 $systime_secs = $in_ru_second['ru_stime.tv_sec'] - $in_ru_first['ru_stime.tv_sec'] - 1;
325 $systime_usecs = 1000000 + $in_ru_second['ru_stime.tv_usec'] - $in_ru_first['ru_stime.tv_usec'];
326 }
327
328 $system_time_string = (string)$systime_usecs;
329 while (strlen($system_time_string) < 6)
330 {
331 $system_time_string = "0" . $system_time_string;
332 }
333
334 $system_time_string = (string)$systime_secs . "." . $system_time_string;
335
336 //User time.
337 //
338 if ($in_ru_second['ru_utime.tv_usec'] >= $in_ru_first['ru_utime.tv_usec'])
339 {
340 //Can do a straight subtract with no borrow.
341 $usertime_secs = $in_ru_second['ru_utime.tv_sec'] - $in_ru_first['ru_utime.tv_sec'];
342 $usertime_usecs = $in_ru_second['ru_utime.tv_usec'] - $in_ru_first['ru_utime.tv_usec'];
343 }
344 else
345 {
346 //Need a borrow.
347 $usertime_secs = $in_ru_second['ru_utime.tv_sec'] - $in_ru_first['ru_utime.tv_sec'] - 1;
348 $usertime_usecs = 1000000 + $in_ru_second['ru_utime.tv_usec'] - $in_ru_first['ru_utime.tv_usec'];
349 }
350
351 $user_time_string = (string)$usertime_usecs;
352 while (strlen($user_time_string) < 6)
353 {
354 $user_time_string = "0" . $user_time_string;
355 }
356
357 $user_time_string = (string)$usertime_secs . "." . $user_time_string;
358
359 //Total time.
360 //
361 $totaltime_usecs = $systime_usecs + $usertime_usecs;
362 $totaltime_secs = $systime_secs + $usertime_secs;
363 if ($totaltime_usecs >= 1000000)
364 {
365 $totaltime_usecs -= 1000000;
366 $totaltime_secs += 1;
367 }
368
369 $total_time_string = (string)$totaltime_usecs;
370 while (strlen($total_time_string) < 6)
371 {
372 $total_time_string = "0" . $total_time_string;
373 }
374
375 $total_time_string = (string)$totaltime_secs . "." . $total_time_string;
376
377
378 $out_totaltime = $total_time_string;
379 $out_systime = $system_time_string;
380 $out_usertime = $user_time_string;
381 }
382
383 //Returns the HTML for a thin horizontal line, with no terminating newline or
384 //similar.
385 //
386 function STDFORMAT_hline_thin()
387 {
388 return("<hr size=\"1\" style=\"color:#404040\">");
389 }
390
391 //Returns the HTML for a thick horizontal line, with no terminating newline or
392 //similar.
393 //
394 function STDFORMAT_hline_thick()
395 {
396 return("<hr size=\"4\" style=\"color:#404040\">");
397 }
398
399 //Returns the <font> tag corresponding to the desired default font,
400 //with no newline.
401 //
402 function STDFORMAT_default_font_tag()
403 {
404 return("<font face=\"arial\">");
405 }
406
407 //Returns the webmaster name as a string, with no terminating newlines
408 //or similar.
409 //
410 function STDFORMAT_webmaster_name()
411 {
412 return("David T. Ashley");
413 }
414
415 //Returns the webmaster e-mail address as a string, with no terminating newlines
416 //or similar.
417 //
418 function STDFORMAT_webmaster_email()
419 {
420 return("dashley@gmail.com");
421 }
422 ?>

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25