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
<?php
# TODO:
# * set timeout for network operation
# * check for long anchors and trim them
# * make smarter URL regexp
$post_data = <<<EOF
http://code.google.com
http://sf.net
Как пересмотрите все, обращайтесь, ещё ссылок подкину.
EOF;
function fetch_anchor($url) {
$data = file_get_contents($url);
$matches = array();
preg_match_all('{<title>([^>]+)</title>}i', $data, $matches);
return isset($matches[1][0]) ? $matches[1][0] : $url;
}
function process_url($url) {
$anchor = fetch_anchor($url);
return sprintf('[URL=%s]%s[/URL]', $url, $anchor);
}
$data = preg_replace('{(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)}e',
'process_url("\\1")',
$post_data);
print $data;
?>