summaryrefslogtreecommitdiff
path: root/ajaxGetTitle.php
blob: 0bc142d154fd3f138bab7bf5dff1adbd544f007a (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
<?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('Content-Type: text/xml; charset=UTF-8');
header("Last-Modified: ". gmdate("D, d M Y H:i:s") ." GMT");
header("Cache-Control: no-cache, must-revalidate");

require_once('header.inc.php');

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];

        // Get encoding from charset attribute
        preg_match_all('/<meta.*charset=([^;"]*)">/i', $html, $matches);
        $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);
        }

        if (utf8_strlen($title) > 0) {
            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>