aboutsummaryrefslogtreecommitdiff
path: root/src/SemanticScuttle/UrlHelper.php
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2020-10-01 17:48:30 -0300
committerSilvio Rhatto <rhatto@riseup.net>2020-10-01 17:48:30 -0300
commitb3bbae81b7b2c8132a4e43cfa49b81fae58dd8e5 (patch)
tree28f70b6caff40a0b104177f893630c796e540e77 /src/SemanticScuttle/UrlHelper.php
parent9a5f69a671a0ad841d9914293efbdcef0e1b75bf (diff)
parentea04385bc16de6b7b65aab75c5c33cfe2d71ea84 (diff)
downloadsemanticscuttle-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.php65
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;
+ }
+ }
+}
+?>