2010-11-18 4 views
0

나는 IRC 로봇이 개인 메시지를 채널의 % 사용자에게 보내도록 만들었지 만 작동하지 않습니다.PHP - IRC Function

<?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 채널의 사용자 %를 개인 메시지로 섞습니다.

+0

그리고 당신은 제대로 들여 쓰기를해야 할 이유가 있다면. 만약 당신이했다면, 당신은 첫 번째''if' 블록을 닫는'''이 없다는 것을 알게 될 것입니다 ... – ircmaxell

+0

지금 그것을 수정하지 않았습니다. 하지만 봇은 % shuffle을 통해 채널의 다른 사용자에게 비공개 메시지를 보내지 않습니다. – Ray

답변

1

unexpected $end은 파일의 끝에 도달했으며 모든 블록 ({})이 닫히지 않았 음을 의미합니다. 맞습니다. 닫힌 괄호보다 열린 괄호가 더 많이 있습니다. 당신은 어딘가에 하나를 닫는 것을 잊었습니다.

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 
} 

그냥 코드를 감추고에서, 나는 접근 방식 분명히 잘못 아무것도 볼 수 없지만, : 들여 쓰기를 바탕으로, 난 당신이 if 문 다음에 당신의 내면의 while 루프 권리를 닫 의미 생각 나는 실제로

+0

시스템을 제대로했는지는 확실하지 않습니다. 작동합니까? – Ray

+0

이제는 그것을 읽지 않은 실수를 수정했습니다. 하지만 봇은 % shuffle을 통해 채널의 다른 사용자에게 개인 메시지를 보내지 않습니다 ... – Ray

1

당신이 의 '}'잊지하지 않았다 ($ ircSocket) {

+0

봇은 내가 로그인 할 때이 로그를 제공합니다 : : StatServ! [email protected] PRIVMSG Rawr20867 : VERSION – Ray