PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 2.0.3
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v2.0.3
4.6.0 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 / vendor / ostraining / embera / Lib / Embera / Oembed.php
embedpress / vendor / ostraining / embera / Lib / Embera Last commit date
Adapters 8 years ago Providers 8 years ago Autoload.php 8 years ago Embera.php 8 years ago FakeResponse.php 8 years ago Formatter.php 8 years ago HtmlProcessor.php 8 years ago HttpRequest.php 8 years ago Oembed.php 8 years ago Providers.php 8 years ago Url.php 8 years ago
Oembed.php
93 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 */
31 public function __construct(\Embera\HttpRequest $http)
32 {
33 $this->http = $http;
34 }
35
36 /**
37 * Gets information about a resource
38 *
39 * @param bool $behaviour Wether or not to use fake responses only
40 * @param string $apiUrl The Url to the Oembed provider
41 * @param string $url The original url, we want information from
42 * @param array $params An associative array with parameters to be sent to the
43 * Oembed provider.
44 * @return array
45 */
46 public function getResourceInfo($behaviour, $apiUrl, $url, array $params = array())
47 {
48 if ($behaviour === false) {
49 return array();
50 }
51
52 return $this->lookup($this->constructUrl($apiUrl, array_merge($params, array('url' => $url))));
53 }
54
55 /**
56 * Executes a http request to the given url and
57 * returns an associative array with the fetched data.
58 *
59 * @param string $url
60 * @return array
61 *
62 * @throws Exception From the Http object only if there is no way
63 * to perform the request or if the response from
64 * the server is empty/invalid.
65 */
66 protected function lookup($url)
67 {
68 $response = $this->http->fetch($url);
69 $json = json_decode($response, true);
70
71 if ($json) {
72 return array_merge(array('embera_using_fake' => 0), $json);
73 }
74
75 return array();
76 }
77
78 /**
79 * Builds a valid Oembed query string based on the given parameters,
80 * Since this method uses the http_build_query function, there is no
81 * need to pass urlencoded parameters, http_build_query already does
82 * this for us.
83 *
84 * @param string $apiUrl The Url to the Oembed Api
85 * @param array $params Parameters for the query string
86 * @return string
87 */
88 protected function constructUrl($apiUrl, array $params = array())
89 {
90 return $apiUrl . ((strpos($apiUrl, '?') === false) ? '?' : '&') . http_build_query(array_filter($params));
91 }
92 }
93