Move URL title method to dedicated class
This commit is contained in:
parent
27e154e5fc
commit
833537692e
2 changed files with 69 additions and 46 deletions
65
src/SemanticScuttle/UrlHelper.php
Normal file
65
src/SemanticScuttle/UrlHelper.php
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
|
@ -27,53 +27,11 @@ require_once 'www-header.php';
|
||||||
|
|
||||||
/* Managing all possible inputs */
|
/* Managing all possible inputs */
|
||||||
isset($_GET['url']) ? define('GET_URL', $_GET['url']): define('GET_URL', '');
|
isset($_GET['url']) ? define('GET_URL', $_GET['url']): define('GET_URL', '');
|
||||||
|
$urlhelper = new SemanticScuttle_UrlHelper();
|
||||||
|
|
||||||
function getTitle($url) {
|
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
|
||||||
$fd = @fopen($url, 'r');
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
echo '<?xml version="1.0" encoding="utf-8"?>';
|
|
||||||
?>
|
?>
|
||||||
<response>
|
<response>
|
||||||
<method>
|
<method>getTitle</method>
|
||||||
getTitle
|
<result><?php echo htmlspecialchars($urlhelper->getTitle(GET_URL)); ?></result>
|
||||||
</method>
|
|
||||||
<result>
|
|
||||||
<?php echo getTitle(GET_URL); ?>
|
|
||||||
</result>
|
|
||||||
</response>
|
</response>
|
||||||
|
|
Loading…
Reference in a new issue