LIX. IRC Gateway Functions

简介

With IRCG you can rapidly stream XML data to thousands of concurrently connected users. This can be used to build powerful, extensible interactive platforms such as online games and webchats. IRCG also features support for a non-streaming mode where a helper application reformats incoming data and supplies static file snippets in special formats such as cHTML (i-mode) or WML (WAP). These static files are then delivered by the high-performance web server.

Up to v4, IRCG runs under these platforms:

  • AIX

  • FreeBSD

  • HP-UX

  • Irix

  • Linux

  • Solaris

  • Tru64

  • Windows

注: 本扩展已被移动到 PECL 库中且自以下版本起不再被绑定到 PHP 中:5.1.0.

安装

Detailed installation instructions can be found at http://www.schumann.cx/ircg/. We urge you to use the provided installation script.

It is not recommended, but you can try enable IRCG support yourself. Provide the path to the ircg-config script, --with-ircg-config=path/to/irc-config and in addition add --with-ircg to your configure line.

运行时配置

本扩展模块在 php.ini 中未定义任何配置选项。

预定义常量

本扩展模块未定义任何常量。

目录
ircg_channel_mode --  Set channel mode flags for user
ircg_disconnect --  Close connection to server
ircg_eval_ecmascript_params -- Decodes a list of JS-encoded parameters
ircg_fetch_error_msg --  Returns the error from previous IRCG operation
ircg_get_username --  Get username for connection
ircg_html_encode --  Encodes HTML preserving output
ircg_ignore_add --  Add a user to your ignore list on a server
ircg_ignore_del --  Remove a user from your ignore list on a server
ircg_invite -- Invites nickname to channel
ircg_is_conn_alive --  Check connection status
ircg_join --  Join a channel on a connected server
ircg_kick --  Kick a user out of a channel on server
ircg_list -- List topic/user count of channel(s)
ircg_lookup_format_messages --  Check for the existence of a format message set
ircg_lusers -- IRC network statistics
ircg_msg --  Send message to channel or user on server
ircg_names -- Query visible usernames
ircg_nick --  Change nickname on server
ircg_nickname_escape --  Encode special characters in nickname to be IRC-compliant
ircg_nickname_unescape --  Decodes encoded nickname
ircg_notice --  Send a notice to a user on server
ircg_oper -- Elevates privileges to IRC OPER
ircg_part --  Leave a channel on server
ircg_pconnect --  Connect to an IRC server
ircg_register_format_messages --  Register a format message set
ircg_set_current --  Set current connection for output
ircg_set_file --  Set logfile for connection
ircg_set_on_die --  Set action to be executed when connection dies
ircg_topic --  Set topic for channel on server
ircg_who -- Queries server for WHO information
ircg_whois --  Query server for user information

add a note add a note User Contributed Notes
malo at dasevil dot de
05-May-2006 11:59
If sb need a simple PHP IRC Class:

http://sf.net/projects/irccc
matthias at matthiaswinkelmann dot com
09-Aug-2005 05:59
I have posted the last BSD-Licensed version of ircg at http://www.matthiaswinkelmann.com/index.php/
2005/08/09/ircg-27-last-bsd-licensed-version/ (link broken into two lines)

I haven't tried the IRC packages in PEAR, but I'd suspect that ircg is much faster and better in handling high amounts of connections, since these things are rather tricky to do in php.
howanghk NOSPAM at gmail NOSPAM dot com
28-Jul-2005 06:57
In fact, this IRCG is shareware (which limit to 10 connections at one time only) and useless!
The real solution is the Net_SmartIRC PEAR Package http://pear.php.net/package/Net_SmartIRC/
The Net_SmartIRC package provide all the function that you need with IRC and it is possible for you to send a raw command to the IRC server. I highly recommand you to use Net_SmartIRC instead of IRCG!
Sami Fouad
27-Apr-2005 06:39
Yes, the newer versions are shareware, but the older version is not so I don't see why this should be removed. And it is still freely available on his website here: http://www.schumann.cx/ircg/windows.php

But as the URL might indicate to you, it's Win32 servers only.
karl dot robert at gmail dot com
13-Jan-2005 08:43
ircg 3 and 4 are shareware, but ircg 2 was bsd-licenced. I still have that version (sasha schumann pulled it from his website - i wonder why). Send me an email if you want it.
16-Apr-2004 09:50
watch out, ircg is shareware as it seems.
Quoting from http://schumann.cx/ircg/ircg4.php :
The IRCG 4 Free Trial does not allow more than 10 concurrent connections
Answer: The IRCG 4 Free Trial is limited to 10 concurrent connections. You can buy an unlimited license by contacting us here.

Poor job, documentation team. Do you like promoting shareware in your manual just because its from a core developer?
meebey at php dot net
02-Jun-2003 07:23
If you just need an IRC client/bot in PHP without this IRCG extension, you want to look at the PEAR::SmartIRC class. Here the direct link to this class: http://pear.php.net/package-info.php?pacid=146
darkelder at php dot net
12-Nov-2002 01:16
This is an example to show how to connect to a IRC server, how to join a channel, send and receive messages.

<?PHP

/* change it to your own nickname                                              */
$nickname              = "myOwnNick";
/* choice your irc server                                                      */
$server                = "irc.brasirc.net";
/* change to your channel                                                      */
$channel                = "#linux";
/* do not change it if you do not know what means :-)                          */
$port                  = "6667";

/* as ircg cannot resolve hosts, we use PHP internal function to get the IP    */
$ip                    = gethostbyname($server);

/* connection                                                                  */
$id                    = ircg_pconnect($nickname,$ip,$port);

/* checking if  connected                                                      */
if (!ircg_is_conn_alive($id))
{
       print
"Cannot connect<br>";
       exit;
}

/* joining a channel                                                            */
if (!ircg_join($id,$channel))
{
       print
"Cannot join to $chanell<br>";
}

/* getting messages - you must have this in your php file                      */
ircg_set_current($id);

/* send messages to your channel and you                                        */
ircg_msg($id,$channel,"Hello $channel!!");
ircg_msg($id,$nickname,"This message goes to me!!!");

?>
ssruprai at hotmail dot com
03-May-2002 09:55
You may face problems with php 4.20 configure script when using "--with-ircg-config" without providing any path to script file. When it tries to configure ircg it just starts printing --ldflags continuously.

checking for IRCG support... yes
--ldflags
--ldflags
--ldflags
--ldflags
--ldflags
--ldflags
--ldflags
--ldflags

So always provide path to ircg-config file as in --with-ircg-config=/user/local/bin/ircg-config