aboutsummaryrefslogtreecommitdiff
path: root/www/ajaxGetTitle.php
blob: e1fbe3000c86276afd5331a3625c059c55a15eb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
/***************************************************************************
 Copyright (C) 2005 - 2006 Scuttle project
 http://sourceforge.net/projects/scuttle/
 http://scuttle.org/

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 ***************************************************************************/

header("Last-Modified: ". gmdate("D, d M Y H:i:s") ." GMT");
header("Cache-Control: no-cache, must-revalidate");

$httpContentType = 'text/xml';
require_once 'www-header.php';

/* Managing all possible inputs */
isset($_GET['url']) ? define('GET_URL', $_GET['url']): define('GET_URL', '');

function getTitle($url) {
	$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>
<method>
getTitle
</method>
<result>
<?php echo getTitle(GET_URL); ?>
</result>
</response>