From 1eed39ee68e2522aa73d8ece0fd8ca0c9014a40d Mon Sep 17 00:00:00 2001 From: x99bachelart Date: Wed, 3 Sep 2003 10:50:04 +0000 Subject: [PATCH] post structure --- include/post.inc.php | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 include/post.inc.php diff --git a/include/post.inc.php b/include/post.inc.php new file mode 100644 index 0000000..5a7e93d --- /dev/null +++ b/include/post.inc.php @@ -0,0 +1,124 @@ +headers = new headers($_nntp,$_id); + if (!$this->headers) { + $this = false; + return false; + } + $this->body = join("\n",$nntp->body($_id)); + if ((isset($this->headers->contentencoding)) && + (preg_match("/base64/",$this->headers->contentencoding))) { + $this->body = base64_decode($this->body); + } + if ((isset($this->headers->contentencoding)) && + (preg_match("/quoted-printable/",$this->headers->contentencoding))) { + $this->body = quoted_printable_decode($this->body); + } + if (!$this->body) { + $this = false; + return false; + } + } +} + +/** class for headers + */ + +class Headers { + /** MSGNUM : *local* spool id */ + var $nb; // numéro du post + /** MSGID : Message-ID */ + var $msgid; // Message-ID + /** From header */ + var $from; // From + /** Name (if present in From header) */ + var $name; + /** Mail (in From header) */ + var $mail; + /** Subject header */ + var $subject; // Subject + /** Newsgroup¨ header */ + var $newsgroups; // Newsgroups + /** Followup-To header */ + var $followup; + /** Content-Type header */ + var $contenttype; + /** Content-Transfer-Encoding header */ + var $contentencoding; + /** Date header */ + var $date; + /** Organization header */ + var $organization; + /** References header */ + var $references; + + /** 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]; + } + $this->nb=$id; + $retour->numerr=0; + } +} + +?> -- 2.1.4