2010-11-18 12 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は、ファイルの最後に達し、すべてのブロック({})が閉じられていないことを意味します。そうです、あなたは閉じた括弧よりも開いた括弧を持っています。あなたはどこかで1つを閉じるのを忘れてしまった。ただ、コードをスキミングから、私はアプローチには明らかに間違っ何も表示されません

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ループを閉じるためのものだと思います私は実際に($のircSocket)場合は のために「}」を忘れ

+0

私はシステムを正しく行ったかどうかは分かりませんが、機能するのでしょうか? – Ray

+0

これを修正しました。しかし、ボットは、%shuffleを介してチャネル上の他のユーザーにプライベートメッセージを与えません... – Ray

1

それをしようとしなかった{

+0

ボットは私にログインするとこのログを与えます:: StatServ![email protected] PRIVMSG Rawr20867:VERSION – Ray