aboutsummaryrefslogtreecommitdiff
path: root/src/SemanticScuttle
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2016-05-09 21:39:18 +0200
committerChristian Weiske <cweiske@cweiske.de>2016-05-09 21:39:18 +0200
commit833537692e62db2a7dea1c9eb74b79c5311fc39b (patch)
tree495f78c10a4f369d339d03be6b07b8d5708f31ca /src/SemanticScuttle
parent27e154e5fc3dcfb234ad0784ee72c766fe728b64 (diff)
downloadsemanticscuttle-833537692e62db2a7dea1c9eb74b79c5311fc39b.tar.gz
semanticscuttle-833537692e62db2a7dea1c9eb74b79c5311fc39b.tar.bz2
Move URL title method to dedicated class
Diffstat (limited to 'src/SemanticScuttle')
-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;
+ }
+ }
+}
+?>