diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2020-10-01 17:48:30 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2020-10-01 17:48:30 -0300 |
commit | b3bbae81b7b2c8132a4e43cfa49b81fae58dd8e5 (patch) | |
tree | 28f70b6caff40a0b104177f893630c796e540e77 /src/SemanticScuttle/UrlHelper.php | |
parent | 9a5f69a671a0ad841d9914293efbdcef0e1b75bf (diff) | |
parent | ea04385bc16de6b7b65aab75c5c33cfe2d71ea84 (diff) | |
download | semanticscuttle-b3bbae81b7b2c8132a4e43cfa49b81fae58dd8e5.tar.gz semanticscuttle-b3bbae81b7b2c8132a4e43cfa49b81fae58dd8e5.tar.bz2 |
Merge remote-tracking branch 'querwurzelt/master' into mergev0.99.0
Diffstat (limited to 'src/SemanticScuttle/UrlHelper.php')
-rw-r--r-- | src/SemanticScuttle/UrlHelper.php | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/SemanticScuttle/UrlHelper.php b/src/SemanticScuttle/UrlHelper.php new file mode 100644 index 0000000..5417b9b --- /dev/null +++ b/src/SemanticScuttle/UrlHelper.php @@ -0,0 +1,65 @@ +<?php +/** + * SemanticScuttle - your social bookmark manager. + * + * PHP version 5. + * + * @category Bookmarking + * @package SemanticScuttle + * @author Christian Weiske <cweiske@cweiske.de> + * @license GPL http://www.gnu.org/licenses/gpl.html + * @link http://sourceforge.net/projects/semanticscuttle + */ + +/** + * Work with URLs + * + * @category Bookmarking + * @package SemanticScuttle + * @author Christian Weiske <cweiske@cweiske.de> + * @license GPL http://www.gnu.org/licenses/gpl.html + * @link http://sourceforge.net/projects/semanticscuttle + */ +class SemanticScuttle_UrlHelper +{ + function getTitle($url) + { + $fd = @fopen($url, 'r'); + $title = ''; + if ($fd) { + $html = fread($fd, 1750); + fclose($fd); + + // Get title from title tag + preg_match_all('/<title[^>]*>(.*)<\/title>/si', $html, $matches); + $title = $matches[1][0]; + + $encoding = 'utf-8'; + // Get encoding from charset attribute + preg_match_all('/<meta.*charset=([^;"]*)">/i', $html, $matches); + if (isset($matches[1][0])) { + $encoding = strtoupper($matches[1][0]); + } + + // Convert to UTF-8 from the original encoding + if (function_exists("mb_convert_encoding")) { + $title = @mb_convert_encoding($title, 'UTF-8', $encoding); + } + + $title = trim($title); + } + + if (utf8_strlen($title) > 0) { + $title = html_entity_decode($title, ENT_QUOTES, 'UTF-8'); + return $title; + } else { + // No title, so return filename + $uriparts = explode('/', $url); + $filename = end($uriparts); + unset($uriparts); + + return $filename; + } + } +} +?> |