Nochmal irc....(thx @closer ;-) )

pGFlo

Mitglied
Nochmal irc...weil ich das einfach nicht peil

Nachdem der Beitrag von mir mit einem Vermerk zu einem anderen Beitrag, der bis auf die 3 Buchstaben IRC nichts mit meiner Frage zu tun hatte, geschlossen wurde, muss ich das nochmal posten ;)
Meine Frage ist nicht ob man User auslesen kann oder sehen kann wer/wieviele online sind, sondern ich möchte lediglich Nachrichten in einen IRC Channel schicken... ;)
 
Zuletzt bearbeitet von einem Moderator:
oder so
PHP:
$irc[server]="irc.de.quakenet.org:6667"; // Server:Port 
$irc[nick]="afnjgo"; // Ein Name für den Bot der auf alle Fälle noch nicht belegt ist! 
$irc[user]="bot"; // Der Username 
$irc[realname]="Anzeige wer im IRC ist"; // Der "realname" 
$irc[chan]="#gameboard"; // Der Raum 
function irc_connect() { 
         global $irc,$irc_online; 
         $server=explode(":",$irc[server]); 
         $irc[connection]=fsockopen($server[0],$server[1]) or $irc_online="<b>Konnte keine Verbindung herstellen!</b>"; 
} 
function irc_get($l=512) { 
         global $irc; 
         @$line=fgets($irc[connection],$l); 
         $line=str_replace("\r","",$line); 
         $line=str_replace("\n","",$line); 
         $irc[line]=$line; 
         return $line; 
} 
function irc_send($t,$e=0) { 
         global $irc; 
         @fputs($irc[connection],$t."\r\n"); 
} 
function irc_get_line() { 
        global $irc, $expl_line; 
        $expl_line=explode(" ",$irc[line]); 
        $long_name=$expl_line[0]; 
        $irc[action]=$expl_line[1]; 
        $irc[action_to]=trim(str_replace(":","",str_replace(" ","",$expl_line[2]))); 
        $irc[writtenline]=str_replace("$long_name $irc[action] $irc[action_to] :","",$irc[line]); 
        $expl_name=explode("!",$long_name); 
        $irc[action_nick]=str_replace(":","",$expl_name[0]); 
        $irc[action_host]=$expl_name[1]; 
} 
function action_is($a,$n=0) { 
        global $irc; 
        if($n==1) { 
           $tmp=explode(" ",$irc[line]); 
           if($tmp[1]==$a) return true; 
           else return false; 
        } elseif($n==2) { 
           $tmp=explode(" ",$irc[line]); 
           if(preg_match("/^ping$/i",$tmp[0])) return true; 
        } else { 
           if(preg_match("/^".$a."$/i",$irc[action])) return true; 
           else return false; 
        } 
} 
irc_connect(); 
irc_send("NICK $irc[nick]"); 
irc_send("USER $irc[user] 0 * :$irc[realname]"); 
while(irc_get()) { 
      irc_get_line(); 
      if(action_is(0,2)) irc_send(preg_replace("/ping/i","pong",$irc[line])); 
      if(action_is(376,1)) irc_send("names ".$irc[chan]); 
      if(action_is(353,1)) $in_room.=str_replace("$expl_line[0] $expl_line[1] $expl_line[2] $expl_line[3] $expl_line[4] :","",$irc[line]); 
      if(action_is(366,1)) irc_send("quit"); 
} 
if(!$irc_online) { 
$irc_online=htmlentities(str_replace(" ",", ",trim($in_room))); 
$irc_online_count=count(explode(" ",trim($in_room))); 
} else { 
$irc_online_count="[unbekannt]"; 
} 
$ircchan=$irc[chan]; 
@fclose($irc[connection]); 
unset($irc); 
unset($expl_line); 
unset($in_room); 
echo("Zur Zeit sind <b>$irc_online_count Chatter</b> im Raum <b>$ircchan</b> online<br>$irc_online ");
(weiß net obs klappt)
 
Zuletzt bearbeitet von einem Moderator:
es soll ja nicht so werden, dass man darüber chatten kann, sondern dass immer 1 Message geschickt werden kann wie in so nem News ticker oder so, wenn man da was eingibts solls halt dann auch gleich in den IRC Channel übertragen werden also bräuchte ich nur ne funktion(die ich verstehe ;) )
für message send , denn soll ja kein chat werden sondern nur n "message poster" :) Hoffe ich konnts halbwegs verständlich beschreiben :)
 
Dann nimm Dir mal die Funktion die Dir da vorgeschlagen wurde (ist garnicht mal schlechte Idee was Command da hatte) und versuch sie Deinen Wünschen anzupassen.
 
wenn ich da wissen würde was ich brauche und was was bedeutet wäre es leichter :) Denn ich weis nicht ob z.B. die Funktion IRC_getline dafür wichtig ist oder nicht :/
 
Ich hab eine kleine Frage zu diesem Tut: http://www.planet-source-code.com/vb/scripts/ShowCodeAsText.asp?txtCodeId=485&lngWId=8
Das Script funzt eigentlich super nur leider war da noch keine Funktion bei um Nachrichten in einem CHannel ausgeben zu lassen.

Die wichtigste Funktion ist ja diese:

function irc_write ($message) {
fputs ($this->ircsocket, $message . "\r\n");
}

Und sowas zb. geht dann auch:

function irc_msg ($user, $message) {
$this->irc_write("PRIVMSG $user :$message");
}

Aber das geht nicht:

function irc_say ($message) {
$this->irc_write("MSG #test :$message");
}

Help...
 
Zurück