Аргерих Л. О языке РНР. Часть 3. Страница 6


function connect() {

if (empty($this->nntp_host)) {

$this->ERROR_MSG = $this->ERR_NNTP_HOST_NOT_SET;

return false; } •

$this->socket = fsockopen($this->nntp_host, $this->nntp_port, &$err_no, &$errstr);

if (!$this->socket) {

if (!$err_no) $err_str = $this->ERR_INIT_SOCKET_ERROR; $this->ERROR_MSG = $thiS->ERR_NNTP_CONNECTION_FAILED

. " $err_no: $err_str";

return false;

if (!$this->getResponse()) {

$tfiis->ERROR_MSG = $this->ERR_UNKNOWN_RESPONSE_FROM_SERVER .

":" . $this->response_msg; return false;

}

if ($this->response_code == 200) return true; else: if <$this->response_code == 201) {

$this~>ERROR_MSG = $thiS->ERR_POSTING_NOT^ALLOWED;

return false; } else {

$this->ERROR„MSG = $this->ERR_NNTP_CONNECTION„FAILEO;

return false;

}

return true;

. } getResponse()

Этот метод разбирает на части ответ, возвращенный сервером, и записывает код ответа и строку комментария в свойства $response_code и $response_msg со­ответственно. Единственное отличие от прежней версии касается сообще­ния, записываемого в случае ошибки:

function getResponseO

if (!$this->socket) {

* $this->ERROR_MSG = $this->ERR„NNTP_NOT_CONNECTED;

return false; :

) ■

$server_response = fgets($thi s-> soc ket, 1024); if (ereg(""([0-9]{3} )(■.*)$", $server_response, $match)) { $this->response_code = $match[1]; $this->response_msg = $match[2]; return true;

$this->response_msg = $server_response; return false;

}

talk()

Метод talk() весьма схож с тем же методом в классе tny_srntр. Единственное отличие состоит в кодах ответов сервера, которые указывают на успешное выполнение операции:

function talk($cmd, $arg=") {

if (!$this->socket> {

$this->ERROR_MSG = $this->ERR_NNTP_NOT_CONNECTED;

return false; {

)

switch ($cmd) {

Для отправки статьи команда GROUP не нужна. Она применяется для провер­ки классом имени телеконференции:

case "GROUP":

if (empty($arg)) {

$this->ERROR_MSG = $this->ERR_GROUPJ/ITHOUT_ARG;

return false;

}

$nntp_cmd = "GROUP $arg\r\n"; fwrite($this->socket, $nntp_cmd); if (!$this->getResponse()) {

$this->ERROR_MSG = $this->ERR_UNKNOWN_RESPONSE_FROM_SERVER .

":" . $this->response_msg; return false;

. ) , ' 1

.: if ($this->response_code I = 211 &&

$this->response_code != 411) { $this->ERROR_MSG = $this->ERR_GROUP_FAILED . " " .




В дизайне интерьера ключевую роль играет именно половое покрытие. Потому лучшим решением может стать для вас ламинированные полы Kronotex, которые обладают высокими эксплуатационными показателями при невысокой цене. А дизайн таких полов вы можете оценить на сайте euromaxima.by.