]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Allow whitespace before and after the = and require space before the href in <link...
authorCraig Andrews <candrews@integralblue.com>
Wed, 2 Sep 2009 03:17:45 +0000 (23:17 -0400)
committerCraig Andrews <candrews@integralblue.com>
Wed, 2 Sep 2009 03:18:39 +0000 (23:18 -0400)
extlib/Services/oEmbed.php

index b05e3a1d1485c5ae9a626b6eaede5736fd28f8f8..0dc8f01b2f4580ba3734ec133370ec58cca33628 100644 (file)
@@ -256,7 +256,7 @@ class Services_oEmbed
 
         $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
         if (substr($code, 0, 1) != '2') {
-            throw new Services_oEmbed_Exception('Non-200 code returned');
+            throw new Services_oEmbed_Exception('Non-200 code returned. Got code ' . $code);
         }
 
         curl_close($ch);
@@ -302,7 +302,7 @@ class Services_oEmbed
 
         // Find all <link /> tags that have a valid oembed type set. We then
         // extract the href attribute for each type.
-        $regexp = '#<link([^>]*)type="' . 
+        $regexp = '#<link([^>]*)type[\s\n]*=[\s\n]*"' . 
                   '(application/json|text/xml)\+oembed"([^>]*)>#im';
 
         $m = $ret = array();
@@ -314,7 +314,7 @@ class Services_oEmbed
 
         foreach ($m[0] as $i => $link) {
             $h = array();
-            if (preg_match('/href="([^"]+)"/i', $link, $h)) {
+            if (preg_match('/[\s\n]+href[\s\n]*=[\s\n]*"([^"]+)"/im', $link, $h)) {
                 $ret[$m[2][$i]] = $h[1];
             }
         } 
@@ -347,7 +347,7 @@ class Services_oEmbed
 
         $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
         if (substr($code, 0, 1) != '2') {
-            throw new Services_oEmbed_Exception('Non-200 code returned');
+            throw new Services_oEmbed_Exception('Non-200 code returned. Got code ' . $code);
         }
 
         return $result;