PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 1.4.2
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v1.4.2
4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / library / ostraining / embera / Lib / Embera / Oembed.php
embedpress / library / ostraining / embera / Lib / Embera Last commit date
Adapters 9 years ago Providers 9 years ago Autoload.php 9 years ago Embera.php 9 years ago FakeResponse.php 9 years ago Formatter.php 9 years ago HttpRequest.php 9 years ago Oembed.php 9 years ago Providers.php 9 years ago Url.php 9 years ago
Oembed.php
96 lines
1 <?php
2 /**
3 * Oembed.php
4 *
5 * @package Embera
6 * @author Michael Pratt <pratt@hablarmierda.net>
7 * @link http://www.michael-pratt.com/
8 *
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
11 */
12
13 namespace Embera;
14
15 /**
16 * This class manages requests and responses
17 * from an Oembed Endpoint.
18 *
19 * TODO: Support xml responses
20 */
21 class Oembed
22 {
23 /** @var object Instance of \Embera\HttpRequest */
24 protected $http;
25
26 /**
27 * Construct
28 *
29 * @param object $http Instance of \Embera\HttpRequest
30 * @return void
31 */
32 public function __construct(\Embera\HttpRequest $http)
33 {
34 $this->http = $http;
35 }
36
37 /**
38 * Gets information about a resource
39 *
40 * @param bool $behaviour Wether or not to use fake responses only
41 * @param string $apiUrl The Url to the Oembed provider
42 * @param string $url The original url, we want information from
43 * @param array $params An associative array with parameters to be sent to the
44 * Oembed provider.
45 * @return array
46 */
47 public function getResourceInfo($behaviour, $apiUrl, $url, array $params = array())
48 {
49 if ($behaviour === false) {
50 return array();
51 }
52
53 return $this->lookup($this->constructUrl($apiUrl, array_merge($params, array('url' => $url))));
54 }
55
56 /**
57 * Executes a http request to the given url and
58 * returns an associative array with the fetched data.
59 *
60 * @param string $url
61 * @return array
62 *
63 * @throws Exception From the Http object only if there is no way
64 * to perform the request or if the response from
65 * the server is empty/invalid.
66 */
67 protected function lookup($url)
68 {
69 $response = $this->http->fetch($url);
70 $json = json_decode($response, true);
71
72 if ($json) {
73 return array_merge(array('embera_using_fake' => 0), $json);
74 }
75
76 return array();
77 }
78
79 /**
80 * Builds a valid Oembed query string based on the given parameters,
81 * Since this method uses the http_build_query function, there is no
82 * need to pass urlencoded parameters, http_build_query already does
83 * this for us.
84 *
85 * @param string $apiUrl The Url to the Oembed Api
86 * @param array $params Parameters for the query string
87 * @return string
88 */
89 protected function constructUrl($apiUrl, array $params = array())
90 {
91 return $apiUrl . ((strpos($apiUrl, '?') === false) ? '?' : '&') . http_build_query(array_filter($params));
92 }
93 }
94
95 ?>
96