class Network
{
/**
- * @brief Curl wrapper
+ * Curl wrapper
*
* If binary flag is true, return binary results.
* Set the cookiejar argument to a string (e.g. "/tmp/friendica-cookies.txt")
* to preserve cookies from one request to the next.
*
+ * @brief Curl wrapper
* @param string $url URL to fetch
* @param boolean $binary default false
* TRUE if asked to return binary results (file download)
}
/**
- * @brief Curl wrapper with array of return values.
+ * Curl wrapper with array of return values.
*
* Inner workings and parameters are the same as @ref fetchUrl but returns an array with
* all the information collected during the fetch.
*
+ * @brief Curl wrapper with array of return values.
* @param string $url URL to fetch
* @param boolean $binary default false
* TRUE if asked to return binary results (file download)
$a = get_app();
$parts = parse_url($url);
- $path_parts = explode('/', $parts['path']);
+ $path_parts = explode('/', defaults($parts, 'path', ''));
foreach ($path_parts as $part) {
if (strlen($part) <> mb_strlen($part)) {
$parts2[] = rawurlencode($part);
$newurl = $curl_info['redirect_url'];
- if (($new_location_info['path'] == '') && ($new_location_info['host'] != '')) {
+ if (empty($new_location_info['path']) && !empty($new_location_info['host'])) {
$newurl = $new_location_info['scheme'] . '://' . $new_location_info['host'] . $old_location_info['path'];
}
$matches = [];
$new_location_info = @parse_url($curl_info['redirect_url']);
$old_location_info = @parse_url($curl_info['url']);
-
+
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
$newurl = trim(array_pop($matches));
if (($h) && (dns_get_record($h, DNS_A + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
return true;
}
- if (($h) && (dns_get_record($h, DNS_CNAME + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
+ if (($h) && dns_get_record($h, DNS_CNAME + DNS_MX)) {
return true;
}
return false;
public static function stripTrackingQueryParams($url)
{
$urldata = parse_url($url);
- if (is_string($urldata["query"])) {
+ if (!empty($urldata["query"])) {
$query = $urldata["query"];
parse_str($query, $querydata);
return "";
}
+ if (empty($parts1["scheme"])) {
+ $parts1["scheme"] = '';
+ }
+ if (empty($parts2["scheme"])) {
+ $parts2["scheme"] = '';
+ }
+
if ($parts1["scheme"] != $parts2["scheme"]) {
return "";
}
+ if (empty($parts1["host"])) {
+ $parts1["host"] = '';
+ }
+ if (empty($parts2["host"])) {
+ $parts2["host"] = '';
+ }
+
if ($parts1["host"] != $parts2["host"]) {
return "";
}
+ if (empty($parts1["port"])) {
+ $parts1["port"] = '';
+ }
+ if (empty($parts2["port"])) {
+ $parts2["port"] = '';
+ }
+
if ($parts1["port"] != $parts2["port"]) {
return "";
}
$match .= ":".$parts1["port"];
}
+ if (empty($parts1["path"])) {
+ $parts1["path"] = '';
+ }
+ if (empty($parts2["path"])) {
+ $parts2["path"] = '';
+ }
+
$pathparts1 = explode("/", $parts1["path"]);
$pathparts2 = explode("/", $parts2["path"]);
$i = 0;
$path = "";
do {
- $path1 = $pathparts1[$i];
- $path2 = $pathparts2[$i];
+ $path1 = defaults($pathparts1, $i, '');
+ $path2 = defaults($pathparts2, $i, '');
if ($path1 == $path2) {
$path .= $path1."/";