use Friendica\Network\HTTPClient\Client\HttpClientAccept;
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
use Friendica\Util\Map;
+use Friendica\Util\Network;
use Friendica\Util\ParseUrl;
use Friendica\Util\Proxy;
use Friendica\Util\Strings;
return $text;
}
- $data['url'] = self::sanitizeLink($data['url']);
+ $data['url'] = Network::sanitizeUrl($data['url']);
if (isset($data['title'])) {
$data['title'] = strip_tags($data['title']);
}
if (!empty($data['provider_url']) && !empty($data['provider_name'])) {
- $data['provider_url'] = self::sanitizeLink($data['provider_url']);
+ $data['provider_url'] = Network::sanitizeUrl($data['provider_url']);
if (!empty($data['author_name'])) {
$return .= sprintf('<sup><a href="%s" target="_blank" rel="noopener noreferrer">%s (%s)</a></sup>', $data['provider_url'], $data['author_name'], $data['provider_name']);
} else {
return $text;
}
- /**
- * Remove invalid parts from an URL
- *
- * @param string $url
- * @return string sanitized URL
- */
- private static function sanitizeLink(string $url): string
- {
- $sanitzed = $url = trim($url);
-
- foreach (['"', ' '] as $character) {
- $pos = strpos($sanitzed, $character);
- if ($pos !== false) {
- $sanitzed = trim(substr($sanitzed, 0, $pos));
- }
- }
-
- if ($sanitzed != $url) {
- Logger::debug('Link got sanitized', ['url' => $url, 'sanitzed' => $sanitzed]);
- }
- return $sanitzed;
- }
-
/**
* Callback: Sanitize links from given $match array
*
private static function sanitizeLinksCallback(array $match): string
{
if (count($match) == 3) {
- return '[' . $match[1] . ']' . self::sanitizeLink($match[2]) . '[/' . $match[1] . ']';
+ return '[' . $match[1] . ']' . Network::sanitizeUrl($match[2]) . '[/' . $match[1] . ']';
} else {
- return '[' . $match[1] . '=' . self::sanitizeLink($match[2]) . ']' . $match[3] . '[/' . $match[1] . ']';
+ return '[' . $match[1] . '=' . Network::sanitizeUrl($match[2]) . ']' . $match[3] . '[/' . $match[1] . ']';
}
}
use Friendica\Util\Images;
use Friendica\Util\Proxy;
use Friendica\Object\Image;
+use Friendica\Util\Network;
/**
* Class Link
} else {
$fields = self::fetchMimeType($url);
$fields['uri-id'] = $uriId;
- $fields['url'] = $url;
+ $fields['url'] = Network::sanitizeUrl($url);
DBA::insert('post-link', $fields, Database::INSERT_IGNORE);
$id = DBA::lastInsertId();
return !empty($scheme) && in_array($scheme, ['http', 'https']) && parse_url($url, PHP_URL_HOST);
}
+ /**
+ * Remove invalid parts from an URL
+ *
+ * @param string $url
+ * @return string sanitized URL
+ */
+ public static function sanitizeUrl(string $url): string
+ {
+ $sanitized = $url = trim($url);
+
+ foreach (['"', ' '] as $character) {
+ $pos = strpos($sanitized, $character);
+ if ($pos !== false) {
+ $sanitized = trim(substr($sanitized, 0, $pos));
+ }
+ }
+
+ if ($sanitized != $url) {
+ Logger::debug('Link got sanitized', ['url' => $url, 'sanitzed' => $sanitized]);
+ }
+ return $sanitized;
+ }
+
/**
* Creates an Uri object out of a given Uri string
*