while(!feof) , while NOT end of file. the correct methon would be to use fread(resource, bytes) , which reads the stream until bytes and then closes the stream.
I actually tested this one.
HTML Code:
if (!function_exists(convert_url_to_bbcode_callback_auto_title)) {
function convert_url_to_bbcode_callback_auto_title($messagetext, $prepend)
{
// the auto parser - adds [url] tags around neccessary things
$messagetext = str_replace('\"', '"', $messagetext);
$prepend = str_replace('\"', '"', $prepend);
static $urlSearchArray, $urlReplaceArray, $emailSearchArray, $emailReplaceArray;
if (empty($urlSearchArray))
{
$taglist = '\[b|\[i|\[u|\[left|\[center|\[right|\[indent|\[quote|\[highlight|\[\*' .
'|\[/b|\[/i|\[/u|\[/left|\[/center|\[/right|\[/indent|\[/quote|\[/highlight';
$urlSearchArray = array(
"#(^|(?<=[^_a-z0-9-=\]\"'/@]|(?<=" . $taglist . ")\]))((https?|ftp|gopher|news|telnet)://|www\.)((\[(?!/)|[^\s[^$`\"'|{}<>])+)(?!\[/url|\[/img)(?=[,.!)]*(\)\s|\)$|[\s[]|$))#siU"
);
$urlReplaceArray = array(
"[url]\\2\\4[/url]"
);
$emailSearchArray = array(
"/([ \n\r\t])([_a-z0-9-]+(\.[_a-z0-9-]+)*@[^\s]+(\.[a-z0-9-]+)*(\.[a-z]{2,4}))/si",
"/^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[^\s]+(\.[a-z0-9-]+)*(\.[a-z]{2,4}))/si"
);
$emailReplaceArray = array(
"\\1[email]\\2[/email]",
"[email]\\0[/email]"
);
}
$text = preg_replace_callback($urlSearchArray, "auto_title", $messagetext);
if (strpos($text, "@"))
{
$text = preg_replace($emailSearchArray, $emailReplaceArray, $text);
}
return $prepend . $text;
}
function auto_title_http_get($url){
$url_stuff = parse_url($url);
$port = isset($url_stuff['port']) ? $url_stuff['port'] : 80;
$fp = fsockopen($url_stuff['host'], $port);
$query = "GET " . $url_stuff['path'] ."?". $url_stuff['query'] . " HTTP/1.0\n";
$query .= "Host: " . $url_stuff['host'];
$query .= "\n\n";
fwrite($fp, $query);
$buffer = fread($fp, 8192);
preg_match('/Content-Length: ([0-9]+)/', $buffer, $parts);
return substr($buffer, - $parts[1]);
}
function auto_title ($text)
{
if ($text[2] == 'www.' or $text[2] == 'WWW.') {
$text[4] = $text[2] . $text[4];
$text[2] = 'http://';
}
$paged = @fopen( $text[2] . $text[4], "r" ); #echo $page . "DONE";
$page = auto_title_http_get($paged);
preg_match("/<title>[\n\r\s]*(.*)[\n\r\s]*<\/title>/", $page, $title);
if ($title[1] == '') {
$title[1] = $text[2] . $text[4];
}
return "[url=\"" . $text[2] . $text[4] . "\"]" . preg_replace("/\&.+\;/", '', $title[1]) . "[/url]";
}
}
$messagetext = preg_replace(
'#(^|\[/(' . $skiptaglist . ')\])(.*(\[(' . $skiptaglist . ')|$))#siUe',
"convert_url_to_bbcode_callback_auto_title('\\3', '\\1')",
$messagetext
);