annotate OnlineURIValidator.inc @ 93:8aadd7a23b68

Moved some functionality from common-functions into Http class. Reorganized Validator into a class hierarchy. Added functionality for validating with a buffer in addition to URLs.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Thu, 18 Oct 2012 16:44:48 +0200
parents
children 2370f4450983
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
93
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
1 <?php
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
2 include_once 'ScriptIncludeCache.inc';
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
3
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
4 /// @cond
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
5 $baseDir = dirname(__FILE__);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
6 $cache = ScriptIncludeCache::instance(__FILE__);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
7 $cache->includeOnce('Http.inc', $baseDir);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
8 $cache->includeOnce('OnlineValidator.inc', $baseDir);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
9 /// @endcond
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
10
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
11
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
12 class OnlineURIValidator extends OnlineValidator
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
13 {
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
14 private $uri;
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
15
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
16 static function get_url_contents($url)
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
17 {
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
18 $crl = curl_init();
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
19 $timeout = 5;
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
20
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
21 curl_setopt ($crl, CURLOPT_URL, $url);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
22 curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
23 curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
24 $ret = curl_exec($crl);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
25 curl_close($crl);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
26 return $ret;
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
27 }
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
28
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
29 function __construct($uri)
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
30 {
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
31 $this->uri = $uri;
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
32 }
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
33
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
34 function check()
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
35 {
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
36 $request = urlencode($this->uri);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
37 $query= '?uri=' . $request;
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
38
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
39 $headers = Http::getHeaders($this->validator_url . $query, 5);
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
40 return $headers['X-W3C-Validator-Status'] === "Valid";
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
41 }
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
42
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
43 function getUri()
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
44 {
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
45 return $this->uri;
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
46 }
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
47
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
48 }
8aadd7a23b68 Moved some functionality from common-functions into Http class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
49 ?>