- /** constructor
- * @param $_nntp RESOURCE handle to NNTP socket
- * @param $_id STRING MSGNUM or MSGID
- */
-
- function headers(&$_nntp,$_id) {
- global $news;
- $hdrs = $_nntp->head($_id);
- if (!$hdrs) {
- $this = false;
- return false;
- }
- // parse headers
- foreach ($hdrs as $line) {
- if (preg_match("/^[\t\r ]+/",$line)) {
- $line = ($lasthdr=="X-Face"?"":" ").ltrim($line);
- if (in_array($lasthdr,array_keys($news['head'])))
- $this->{$news['head'][$lasthdr]} .= $line;
- } else {
- list($hdr,$val) = split(":[ \t\r]*",$line,2);
- if (in_array($hdr,array_keys($news['head'])))
- $this->{$news['head'][$hdr]} = $val;
- $lasthdr = $hdr;
- }
- }
- // decode headers
- foreach ($news['hdecode'] as $hdr) {
- if (isset($this->$hdr)) {
- $this->$hdr = headerDecode($this->$hdr);
- }
- }
- // sets name and mail
- $this->name = $this->from;
- $this->mail = $this->from;
- if (preg_match("/(.*)<(.*)@(.*)>/",$val,$match)) {
- $this->name = str_replace("\"","",trim($match[1]));
- $this->mail = $match[2]."@".$match[3];
- }
- if (preg_match("/([\w\.]+)@([\w\.]+) \((.*)\)/",$val,$match)) {
- $this->name = trim($match[3]);
- $this->mail = $match[1]."@".$match[2];