note 57131 added to function.get-headers
| From: | tylerxxdurden at web dot de | Date: | Sat, 24 Sep 2005 18:54:33 +0000 |
| Subject: | note 57131 added to function.get-headers | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-95717@lists.php.net to get a copy of this message | ||
my version
cleans the input URL a little bit
(you should be able to put in almost every shit, and it should still work)
Should work for:
http://test.de
http://test.de/
www.test.de
http://test.de/
http://test.de/test.html
http://test.de/test.html?testme
...
not nice, but seems to work for me
<?
function get_headers2($url,$format=0) {
$url_info=parse_url($url);
$port = isset($url_info['port']) ? $url_info['port'] : 80;
$fp=fsockopen($url_info['host'], $port, $errno, $errstr, 30);
if($fp) {
if(!$url_info['path']){
$url_info['path'] = "/";
}
if($url_info['path'] && !$url_info['host']){
$url_info['host'] = $url_info['path'];
$url_info['path'] = "/";
}
if( $url_info['host'][(strlen($url_info['host'])-1)] == "/" ){
$url_info['host'][(strlen($url_info['host'])-1)] = "";
}
if(!$url_array[scheme]){
$url_array[scheme] = "http"; //we always use http links
}
$head = "HEAD ".@$url_info['path'];
if( $url_info['query'] ){
$head .= "?".@$url_info['query'];
}
print_r($url_info);
$head .= " HTTP/1.0\r\nHost:
".@$url_info['host']."\r\n\r\n";
echo $head;
fputs($fp, $head);
while(!feof($fp)) {
if($header=trim(fgets($fp, 1024))) {
if($format == 1) {
$h2 = explode(':',$header);
// the first element is the http header type, such as HTTP/1.1 200 OK,
// it doesn't have a separate name, so we have to check for it.
if($h2[0] == $header) {
$headers['status'] = $header;
}
else {
$headers[strtolower($h2[0])] = trim($h2[1]);
}
}
else {
$headers[] = $header;
}
}
}
return $headers;
}
else {
return false;
}
}
?>
----
Manual Page -- http://www.php.net/manual/en/function.get-headers.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+57131
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+57131&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+57131&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+57131&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+57131&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+57131&report=yes&reason=non-english
Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+57131&report=yes&reason=already+in+docs
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+57131&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+57131&report=yes
Search -- http://master.php.net/manage/user-notes.php