]> git.mxchange.org Git - friendica.git/blobdiff - include/network.php
Merge remote branch 'upstream/master'
[friendica.git] / include / network.php
index 9e6f8355b75d5b1168f02da9e8bd8ea0f11e7ad2..a95dde535c9fa967156b28806f9c508b9ed1b064 100644 (file)
@@ -14,15 +14,16 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
                return false;
 
        @curl_setopt($ch, CURLOPT_HEADER, true);
-       
+
        if (!is_null($accept_content)){
                curl_setopt($ch,CURLOPT_HTTPHEADER, array (
                        "Accept: " . $accept_content
                ));
        }
-       
+
        @curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
-       @curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
+       //@curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
+       @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica)");
 
 
        if(intval($timeout)) {
@@ -59,7 +60,6 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
        $base = $s;
        $curl_info = @curl_getinfo($ch);
        $http_code = $curl_info['http_code'];
-
 //     logger('fetch_url:' . $http_code . ' data: ' . $s);
        $header = '';
 
@@ -73,24 +73,22 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
        }
 
        if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) {
-        $matches = array();
-        preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
-        $newurl = trim(array_pop($matches));
+               $matches = array();
+               preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
+               $newurl = trim(array_pop($matches));
                if(strpos($newurl,'/') === 0)
                        $newurl = $url . $newurl;
-        $url_parsed = @parse_url($newurl);
-        if (isset($url_parsed)) {
-            $redirects++;
-            return fetch_url($newurl,$binary,$redirects,$timeout);
-        }
-    }
+               $url_parsed = @parse_url($newurl);
+               if (isset($url_parsed)) {
+                       $redirects++;
+                       return fetch_url($newurl,$binary,$redirects,$timeout);
+               }
+       }
 
        $a->set_curl_code($http_code);
 
        $body = substr($s,strlen($header));
-
        $a->set_curl_headers($header);
-
        @curl_close($ch);
        return($body);
 }}
@@ -800,6 +798,9 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
 
        $a = get_app();
 
+       // Picture addresses can contain special characters
+       $s = htmlspecialchars_decode($s);
+
        $matches = null;
        $c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
        if($c) {