-
-class Tweeper {
-
- public function __construct($stylesheet, $generate_enclosure = FALSE) {
- $stylesheet_contents = $this->get_contents($stylesheet);
-
- $xslDoc = new DOMDocument();
- $xslDoc->loadXML($stylesheet_contents);
-
- $this->xsltProcessor = new XSLTProcessor();
- $this->xsltProcessor->registerPHPFunctions();
- $this->xsltProcessor->setParameter('', 'generateEnclosure', $generate_enclosure);
- $this->xsltProcessor->importStylesheet($xslDoc);
- }
-
- public static function epoch_to_gmdate($timestamp)
- {
- return gmdate('D, d M Y H:i:s', $timestamp) . ' GMT';
- }
-
- public static function str_to_gmdate($date)
- {
- $timestamp = strtotime($date);
- return Tweeper::epoch_to_gmdate($timestamp);
- }
-
- private static function get_contents($uri) {
- # https://www.wjsams.com/c/docs/Wiki/Php-HowToSetUserAgentOnFileGetContents
- $opts = array(
- 'http' => array(
- 'method' => "GET",
- 'header' => join(array(
- "Accept-language: en\r\n",
- "User-Agent: {" + USER_AGENT + "}\r\n"
- ))
- )
- );
-
- $context = stream_context_create($opts);
- $contents = file_get_contents($uri, false, $context);
- return $contents;
- }
-
- public function tweep($uri) {
- $html = Tweeper::get_contents($uri);
-
- $xmlDoc = new DOMDocument();
- $xmlDoc->loadHTML($html);
-
- $output = $this->xsltProcessor->transformToXML($xmlDoc);
-
- if (FALSE === $output) {
- trigger_error('XSL transformation failed.', E_USER_ERROR);
- return NULL;
- }
- return $output;