PHP - функция IRC - PullRequest
       2

PHP - функция IRC

0 голосов
/ 19 ноября 2010

Я пытался заставить моего IRC-бота отправлять личные сообщения% пользователей канала, но это не работает.

Вот мой сценарий, вы поймете его, когда увидите:

<?php

/**
 * Configuration.
 * Pretty self-explanatory
 */

$ircServer = "//";
$ircPort = "6667";
$ircChannel = "#//";

set_time_limit(0);


$msg = $_POST['message'];
$pr = $_POST['percentage'];
$pr /= 100;

$ircSocket = fsockopen($ircServer, $ircPort, $eN, $eS);

if ($ircSocket)
{

    fwrite($ircSocket, "USER Lost rawr.test lol :code\n");
    fwrite($ircSocket, "NICK Rawr" . rand() . "\n");
    fwrite($ircSocket, "JOIN " . $ircChannel . "\n");

    while(1)
    {
        while($data = fgets($ircSocket, 128))
        {
            echo nl2br($data);
            flush();

            // Separate all data
            $exData = explode(' ', $data);

            // Send PONG back to the server
            if($exData[0] == "PING")
            {
                fwrite($ircSocket, "PONG ".$exData[1]."\n");
            }
}
    echo $eS . ": " . $eN;
}
shuffle($users);
$size = count($users);
$target = $size * $pr;
$target = $round($target);

for ($i = 0; $i <= $target; $i++) {
    fwrite($ircSocket, "PRIVMSG " . $users[$i] . " :" . $msg . "\n");
}
?>

Evertime, я пытаюсь перекодировать его, вот ошибка: Parse error: syntax error, unexpected $end in C:\xampp\htdocs\irc.php on line 55

Я пытаюсь создать процентную систему, которая будет перетасовывать% пользователей на канале IRC для личного сообщения с установленным% в системе перестановки.

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

вы забыли '}' для if ($ ircSocket) {

1 голос
/ 19 ноября 2010

unexpected $end означает, что он достиг конца файла и все ваши блоки ({}) не были закрыты. Это верно, у вас больше открытых фигурных скобок, чем закрытых; ты забыл закрыть где-нибудь. Исходя из отступа, я думаю, что вы хотели закрыть свой внутренний цикл while сразу после оператора if:

while(1)
{
    while($data = fgets($ircSocket, 128))
    {
        echo nl2br($data);
        flush();

        // Separate all data
        $exData = explode(' ', $data);

        // Send PONG back to the server
        if($exData[0] == "PING")
        {
            fwrite($ircSocket, "PONG ".$exData[1]."\n");
        }
    } // <-- THIS IS NEW
}

Просто не просматривая код, я не вижу ничего явно неправильного в подходе, но на самом деле я не пробовал его

...