2014-01-15 68 views
1

我有一個文件bot.php將打開,並保持現場IRC連接驗證碼:寫入到插座中使用PHP

<?php 

// Prevent PHP from stopping the script after 30 seconds 
set_time_limit(0); 

// Open socket 
$irc = fsockopen("localhost", 6667); 

// Send AUTH 
fputs($irc,"USER PHPServ PHPServ PHPServ :PHPServ\n"); 
fputs($irc,"NICK PHPServ\n"); 

// Wait, OPER and JOIN channel 
sleep(5); 
fputs($irc,"OPER PHPServ :password\n"); 
fputs($irc,"JOIN #channel\n"); 

// Force an endless while 
while(1) { 

    // Continue 
    while($data = fgets($irc, 128)) { 

     echo nl2br($data); 
     flush(); 

     $ex = explode(' ', $data); 

     if($ex[0] == "PING"){ 
      fputs($irc, "PONG ".$ex[1]."\n"); 
     } 

    } 

} 

?> 

我怎樣才能做一個fputs($irc,"PRIVMSG #channel :Message\n");將通過bot.php但從另一個文件例如發送此rgeister.php

有人可以在這裏指出我正確的方向嗎?

+0

使用文件,數據庫,內存中的存儲等。 –

+0

@SergiuParaschiv我只想寫一個命令到現有的連接。它不能完成? – user2656114

+0

「發送這個_through_」bot.php「」意思是來自還是來自? –

回答

0

您需要在bot.phpregister.php之間進行通信的方式。

由於兩者在同一臺機器上運行,所以比插座有更簡單的方法。讓自己.txt文件,並從register.php(也許file_put_contents)寫入一條消息。

然後閱讀它裏面的while循環bot.phpfile_get_contents也許)。如果它是空的,則什麼也不做。如果裏面有一條消息使用fputs發送它,然後清空該文件,以便您不讀取它並在下一個循環中再次發送它。

顯然這受到併發性問題的影響。如果表現不是問題,請閱讀file locking,我想這不是。