Re: [PHP] Open Call: Official PHP Mirror
On Fri, Jun 01, 2012 at 04:50:03PM -0400, Daniel Brown wrote: [snip] > > Who should not apply? > > Third-party sponsors, those who want to try to run the mirror from > their Blackberry, people without servers located in the respective > country for which they're applying, shared hosting clients, Droids, > Borg, Klingons, Romulans, toddlers, and the gum disease known as > "gingivitis." There I was, ready to volunteer, until I saw "Romulans". Geez, a few bad apples spoiling it for the rest of us. Crap. ;-} Paul -- Paul M. Foster http://noferblatz.com http://quillandmouse.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Using default argument values in the middle of the argument list
On Sat, Jun 2, 2012 at 8:30 PM, oliver gondža wrote: > On Sat, 02 Jun 2012 17:13:55 +0200, Matijn Woudt wrote: > >> >> Hi Oliver, >> >> I think the example at [1] demonstrates that it is possible, but it >> also notes that it is pretty useless. Why are you interested in this? >> >> - Matijn >> >> [1] http://www.php.net/manual/en/functions.arguments.php#example-153 > > > Hi, > > Thanx for your response. > > PHP class type hints are bit more restrictive than in say Java > since it does not accept null as a value of a class. This provides > great guarantees, however, sometimes it is desirable to allow null as well. > > This can be done using: > > function func ( Classname $a = null ) > > Unfortunately, according to documentation this will work only at the end of > parameter list. So this restriction force you to put nullable arguments at > the end of argument list or not use type hints at all. In the worst case > scenario you have to choose between use of illogical order of arguments, > reimplementation of type hinting for arguments that comes after the > nullable one or use no type hinting at all for nullable arguments: It does not state it works only at the end of the list, it states that it only makes sense to use it at the end of the argument list to be able to call the function with less arguments. In case you want to use it as suggested in [2], you can use it anywhere. You can rely on that in any PHP version from 5 upwards, just because version 4 doesn't support type hinting at all. - Matijn [2] http://php.net/manual/en/language.oop5.typehinting.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Using default argument values in the middle of the argument list
On Sat, 02 Jun 2012 17:13:55 +0200, Matijn Woudt wrote: Hi Oliver, I think the example at [1] demonstrates that it is possible, but it also notes that it is pretty useless. Why are you interested in this? - Matijn [1] http://www.php.net/manual/en/functions.arguments.php#example-153 Hi, Thanx for your response. PHP class type hints are bit more restrictive than in say Java since it does not accept null as a value of a class. This provides great guarantees, however, sometimes it is desirable to allow null as well. This can be done using: function func ( Classname $a = null ) Unfortunately, according to documentation this will work only at the end of parameter list. So this restriction force you to put nullable arguments at the end of argument list or not use type hints at all. In the worst case scenario you have to choose between use of illogical order of arguments, reimplementation of type hinting for arguments that comes after the nullable one or use no type hinting at all for nullable arguments: function func ( Classname $last, Classname $first = null ) { ... } or function func ( Classname $first = null, Classname $last = null ) { if ( $last === null ) throw new InvalidArgumentException; ... } or function func ( $first, Classname $last ) { if ( !( $first instanceof Classname ) ) throw new InvalidArgumentException; ... } This is not ideal especially if the desired solution seems to work: function func ( Classname $first = null, Classname $last ) { ... } This function expects exactly two arguments. The second one is supposed to be an instance of Classname and the first one may be an instance of Classname or null. This might be useless for primitive values since any default value you can define can be provided from the outside as well. But, it is definitely not useless for objects since you can not pass null value as an argument that requires an object of some class. As far as i can tell this can emulate Java style object type handling when you needed it. I would be glad to rely on such a behavior. -- Oliver -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] About sessions and subdomains
Hi everyone, Sorry, this might be a stupid question, but still. Once upon a time I had done so my sessions were handled on all subdomains of my website (shame on me for doing so!). Now, when I comment out the line session_set_cookie_params(0, "/", ".oire.org"); in my header file, I got an empty $_SESSION array after submitting every single form on my website. For sure, signing out and back in, as well as cookie removing, were tried several times. Thanks in advance! -- With best regards from Ukraine, Andre Skype: Francophile Blog: http://oire.org/menelion Twitter: http://twitter.com/m_elensule Facebook: http://facebook.com/menelion -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: is there a way to stop HTMLPurifier/CSStidy from forcing input CSS into all lowercase?
> anyone here using HTMLpurifier and CSStidy together? (like e.g. to allow > users to create their own external style sheets via form input) [snip] > I found how to set CSStidy's config options if I was running CSStidy from the > command line, or on its _own_ from PHP runtime, but I do not know how to set > the config options from within HTMLpurifier, or even how to hack/override > either of those libraries to solve my particular issue. I looked and hacked > and thought for sure I would find the offending line of code.. but somehow, > nothing I have tried is stopping one or both of those libraries from forcing > all my input CSS into lowercase, which I do not want. The issue is that I > need the input CSS's case to be left as the user input it (so that for > example background image paths in that CSS do not break). > > more details: > http://stackoverflow.com/questions/10843600/ For the archives / anyone following this thread: Thanks to the developer of HTMLpurifier, it was just fixed here: http://repo.or.cz/w/htmlpurifier.git/commit/f38fca32a9bad0952df221f8664ee2ab13978504 -Govinda -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Simple Email System (SES) Provider
On Sat, Jun 2, 2012 at 6:25 PM, Stuart Dallas wrote: > On 2 Jun 2012, at 17:20, Ashley Sheridan wrote: > >> On Sat, 2012-06-02 at 17:33 +0200, Matijn Woudt wrote: >> >>> On Sat, Jun 2, 2012 at 2:32 AM, Don Wieland wrote: Hi all, I built a system in PHP/mySQL where a group of users post events, sign-up for events, change their arrival times, remove thier names from events, and post related notes on the events. Each time an action is done, an email is generated to the entire group that their has been a change. Pretty standard stuff... Today I just got an Mail Delivery System email with this error: Domain dwdcweb.info has exceeded the max emails per hour (350/350 (100%)) allowed. Message will be reattempted later I contacted my VPS provider and they just alerted me that there is a limit on how many emails my server can send per hour. They recommended I find a 3rd party service provider with support PHP API connections. My budget is limited. Does anyone have any suggestions of companies that might work for my scenario? Any feedback is appreciated ;-) Don >>> >>> Maybe you can group all mails to a single group together (with >>> contacts in BCC), so you only need to send 1 mail instead of 100 for a >>> group of 100 users? >>> >>> - Matijn >>> >> >> >> I would assume that each recipient would count as a single email, so if >> you send one email to 150 people, you'd be 25% through the hourly quota. > > Dunno how mathematics works in your universe, but 4 * 150 != 350 in the one > in which I live :) > > Don: Options... > > * Switch to a dedicated server, or a VPS host that doesn't have that limit. > > * Use Gmail or another hosted email provider (may have a similar limit but > I've never run into it with Gmail). > Stuart, If the facts are still correct (based on numbers from 2008), Gmail has a limit of 500 messages a day, with a maximum of reaching 2000 recipients a day. - Matijn -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Simple Email System (SES) Provider
On Sat, Jun 2, 2012 at 6:20 PM, Ashley Sheridan wrote: > ** > On Sat, 2012-06-02 at 17:33 +0200, Matijn Woudt wrote: > > On Sat, Jun 2, 2012 at 2:32 AM, Don Wieland wrote: > > Hi all, > > > > I built a system in PHP/mySQL where a group of users post events, sign-up > > for events, change their arrival times, remove thier names from events, and > > post related notes on the events. Each time an action is done, an email is > > generated to the entire group that their has been a change. Pretty standard > > stuff... > > > > Today I just got an Mail Delivery System email with this error: > > > > Domain dwdcweb.info has exceeded the max emails per hour (350/350 (100%)) > > allowed. Message will be reattempted later > > > > I contacted my VPS provider and they just alerted me that there is a limit > > on how many emails my server can send per hour. > > > > They recommended I find a 3rd party service provider with support PHP API > > connections. > > > > My budget is limited. Does anyone have any suggestions of companies that > > might work for my scenario? > > > > Any feedback is appreciated ;-) > > > > Don > > > > Maybe you can group all mails to a single group together (with > contacts in BCC), so you only need to send 1 mail instead of 100 for a > group of 100 users? > > - Matijn > > > > I would assume that each recipient would count as a single email, so if > you send one email to 150 people, you'd be 25% through the hourly quota. > -- > I wonder which school you went to ;) 150/350 = 42.86%..
Re: [PHP] Simple Email System (SES) Provider
On Sat, 2012-06-02 at 17:25 +0100, Stuart Dallas wrote: > On 2 Jun 2012, at 17:20, Ashley Sheridan wrote: > > > On Sat, 2012-06-02 at 17:33 +0200, Matijn Woudt wrote: > > > >> On Sat, Jun 2, 2012 at 2:32 AM, Don Wieland wrote: > >>> Hi all, > >>> > >>> I built a system in PHP/mySQL where a group of users post events, sign-up > >>> for events, change their arrival times, remove thier names from events, > >>> and > >>> post related notes on the events. Each time an action is done, an email is > >>> generated to the entire group that their has been a change. Pretty > >>> standard > >>> stuff... > >>> > >>> Today I just got an Mail Delivery System email with this error: > >>> > >>> Domain dwdcweb.info has exceeded the max emails per hour (350/350 (100%)) > >>> allowed. Message will be reattempted later > >>> > >>> I contacted my VPS provider and they just alerted me that there is a limit > >>> on how many emails my server can send per hour. > >>> > >>> They recommended I find a 3rd party service provider with support PHP API > >>> connections. > >>> > >>> My budget is limited. Does anyone have any suggestions of companies that > >>> might work for my scenario? > >>> > >>> Any feedback is appreciated ;-) > >>> > >>> Don > >>> > >> > >> Maybe you can group all mails to a single group together (with > >> contacts in BCC), so you only need to send 1 mail instead of 100 for a > >> group of 100 users? > >> > >> - Matijn > >> > > > > > > I would assume that each recipient would count as a single email, so if > > you send one email to 150 people, you'd be 25% through the hourly quota. > > Dunno how mathematics works in your universe, but 4 * 150 != 350 in the one > in which I live :) > > Don: Options... > > * Switch to a dedicated server, or a VPS host that doesn't have that limit. > > * Use Gmail or another hosted email provider (may have a similar limit but > I've never run into it with Gmail). > > * Use a service like http://sendgrid.com/. > > -Stuart > Yeah my bad, I'll blame it on the heat and my poor carbon-based processor :p -- Thanks, Ash http://www.ashleysheridan.co.uk
Re: [PHP] Simple Email System (SES) Provider
On 2 Jun 2012, at 17:20, Ashley Sheridan wrote: > On Sat, 2012-06-02 at 17:33 +0200, Matijn Woudt wrote: > >> On Sat, Jun 2, 2012 at 2:32 AM, Don Wieland wrote: >>> Hi all, >>> >>> I built a system in PHP/mySQL where a group of users post events, sign-up >>> for events, change their arrival times, remove thier names from events, and >>> post related notes on the events. Each time an action is done, an email is >>> generated to the entire group that their has been a change. Pretty standard >>> stuff... >>> >>> Today I just got an Mail Delivery System email with this error: >>> >>> Domain dwdcweb.info has exceeded the max emails per hour (350/350 (100%)) >>> allowed. Message will be reattempted later >>> >>> I contacted my VPS provider and they just alerted me that there is a limit >>> on how many emails my server can send per hour. >>> >>> They recommended I find a 3rd party service provider with support PHP API >>> connections. >>> >>> My budget is limited. Does anyone have any suggestions of companies that >>> might work for my scenario? >>> >>> Any feedback is appreciated ;-) >>> >>> Don >>> >> >> Maybe you can group all mails to a single group together (with >> contacts in BCC), so you only need to send 1 mail instead of 100 for a >> group of 100 users? >> >> - Matijn >> > > > I would assume that each recipient would count as a single email, so if > you send one email to 150 people, you'd be 25% through the hourly quota. Dunno how mathematics works in your universe, but 4 * 150 != 350 in the one in which I live :) Don: Options... * Switch to a dedicated server, or a VPS host that doesn't have that limit. * Use Gmail or another hosted email provider (may have a similar limit but I've never run into it with Gmail). * Use a service like http://sendgrid.com/. -Stuart -- Stuart Dallas 3ft9 Ltd http://3ft9.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Simple Email System (SES) Provider
On Sat, 2012-06-02 at 17:33 +0200, Matijn Woudt wrote: > On Sat, Jun 2, 2012 at 2:32 AM, Don Wieland wrote: > > Hi all, > > > > I built a system in PHP/mySQL where a group of users post events, sign-up > > for events, change their arrival times, remove thier names from events, and > > post related notes on the events. Each time an action is done, an email is > > generated to the entire group that their has been a change. Pretty standard > > stuff... > > > > Today I just got an Mail Delivery System email with this error: > > > > Domain dwdcweb.info has exceeded the max emails per hour (350/350 (100%)) > > allowed. Message will be reattempted later > > > > I contacted my VPS provider and they just alerted me that there is a limit > > on how many emails my server can send per hour. > > > > They recommended I find a 3rd party service provider with support PHP API > > connections. > > > > My budget is limited. Does anyone have any suggestions of companies that > > might work for my scenario? > > > > Any feedback is appreciated ;-) > > > > Don > > > > Maybe you can group all mails to a single group together (with > contacts in BCC), so you only need to send 1 mail instead of 100 for a > group of 100 users? > > - Matijn > I would assume that each recipient would count as a single email, so if you send one email to 150 people, you'd be 25% through the hourly quota. -- Thanks, Ash http://www.ashleysheridan.co.uk
Re: [PHP] Simple Email System (SES) Provider
On Sat, Jun 2, 2012 at 2:32 AM, Don Wieland wrote: > Hi all, > > I built a system in PHP/mySQL where a group of users post events, sign-up > for events, change their arrival times, remove thier names from events, and > post related notes on the events. Each time an action is done, an email is > generated to the entire group that their has been a change. Pretty standard > stuff... > > Today I just got an Mail Delivery System email with this error: > > Domain dwdcweb.info has exceeded the max emails per hour (350/350 (100%)) > allowed. Message will be reattempted later > > I contacted my VPS provider and they just alerted me that there is a limit > on how many emails my server can send per hour. > > They recommended I find a 3rd party service provider with support PHP API > connections. > > My budget is limited. Does anyone have any suggestions of companies that > might work for my scenario? > > Any feedback is appreciated ;-) > > Don > Maybe you can group all mails to a single group together (with contacts in BCC), so you only need to send 1 mail instead of 100 for a group of 100 users? - Matijn -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Using default argument values in the middle of the argument list
On Fri, Jun 1, 2012 at 9:52 PM, <324...@mail.muni.cz> wrote: > Hi, > > as I accidentally found out that PHP allows default argument values > to occur not only at the end of parameter list: > > function ( Classname $a, Classname $b = null, Classname $c ) ... > > Unfortunately, documentation does not state what is supposed to happen in > such situation. > It appears $b can be an instance of Classname or a null. > > I've draw up simple test case (https://gist.github.com/2829626) to verify my > assumption > and it seems to work at least since PHP 5.3.0. It is extremely useful to > allow null > value and retain the power of type hints at the same time. > > Is there anything else to test? Does it work for your setup? Can it be used > that way? > And if yes, can it be officially documented? > > Do not hesitate to prove I'm wrong. > > -- Oliver > Hi Oliver, I think the example at [1] demonstrates that it is possible, but it also notes that it is pretty useless. Why are you interested in this? - Matijn [1] http://www.php.net/manual/en/functions.arguments.php#example-153 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] progress indicators in browsers for long running php scripts?
On Fri, Jun 1, 2012 at 3:45 PM, rene7705 wrote: > Hi.. > > I've got several scripts now that may run for a long time; the > self-test script for my htmlMicroscope, my serviceLog component when > it calculates totals for a large number of hits, a curl script that is > likely to one day crawl a hundred or so RSS urls in a single update, > etc, etc. I don't see how these scripts would need more than the default 30 seconds execution time, except for the crawler maybe. But you want the crawler to be a cronjob anyway. > > I'd like to build a generic system (and opensource it) to allow PHP to > execute a long running script, and somehow get a progress bar with > "what am I doing now"-status-msg for such processes, in the browser. > > The easiest thing, and maybe the only way this will work, is to load > up a site's framework html (so as to display the site), then call the > long-running script via ajax. > However, a long-running script needs set_time_limit(0), which is > something shared hosters just won't do for browsers. > A moderately good shared hoster will however allow you to > set_time_limit(0) for PHP cron jobs. I guess you're on a old fashioned safe mode host? Never had any problems using set_time_limit on web scripts on my previous shared hosters (got private servers now). > > So I'd need to build a cron PHP daemon that listens for new tasks. > That won't be much of a problem, I've done it before. > > But the task definition itself puzzles me a lot still. > I suppose I'd need an ID for the task/job, and include in the task def > what worker-php-script and worker-php-function to call, with also the > parameters for the worker function. > The worker function would then call back certain daemon functions to > push status updates to the browser. I wonder how you're planning on doing that. Since shared hosts have either safe mode on, or at least disabled the system call, you cannot call the php binary. I guess there are two options: 1) Include all possible worker scripts that you're are going to use, and call the worker function. 2) Load the file and call eval on it. Note that in both cases, the script still runs inside the cronjob daemon, and the daemon will not be able to handle other task. You would need to fork, but I doubt the PCNTL functions are available on your shared host.. For the task definition, I think I would choose a set of defines to give each task a unique ID. Set up a task table with ID, class/function. Then define this function with a abstract header with just one parameter, $data, and have each task interpret this data as it wishes. > > And the browser can then just kick off the task, and poll every 5 > seconds or so for very brief status updates in JSON format. Database, sockets? > > This is how I can import videos of any length into my CMS, and convert > them to flash video aswell (even optionally converting on another, > dedicated server). You're probably limited to the upload size limits. These are usually very tight at shared hosting... > > Once again I'm asking you all for input and tips before I begin on > this new workDaemon component of mine.. > > I suppose most of you'd want a neat PHP object of it? Not my usual > procedural-only PHP coding? I wouldn't mind a simple while(true) procedural daemon, though the tasks are probably best defined as classes. - Matijn -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Happy Diamond Jubilee everyone!
Bastien Koert On 2012-06-02, at 4:51 AM, Ashley Sheridan wrote: > > > Paul M Foster wrote: > >> On Fri, Jun 01, 2012 at 06:44:17PM +0100, Ashley Sheridan wrote: >> >>> This is a bit of a shameless plug, but it is a Friday and a pretty >>> special weekend over here. >>> >>> I recently got to work on something a bit fun at work in my spare >> time >>> and they liked it so much that it got used internally to celebrate >> the >>> jubilee weekend. >>> >>> This is the result http://jubilee.themlondon.com >>> >>> For those of you interested, the leg-work is done by a bunch of PHP >>> scripts run in the background via cron, split into 3 tasks: >>> >>> >>> 1. A script goes out and searches Twitter for tweets that >> mention >>>the jubilee, one instance per keyword and records those to a >> DB >>>to limit the draw on the Twitter API >>> 2. A second script goes over those tweets and pulls in all the >>>non-default profile images for each unique user >>> 3. Lastly, the image is built as 12 separate tiles every half >> hour, >>>using PHP and GD to match the average colour of each profile >> pic >>>to a spot on the image, and then these are stitched together >> for >>>the final image >>> >>> Anyway, hope you guys all have a great weekend, more so if you're >>> unlucky enough to be working over the whole 4 days :-/ >> >> *Very* nice work! >> >> Paul >> >> -- >> Paul M. Foster >> http://noferblatz.com >> http://quillandmouse.com >> >> -- >> PHP General Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php > > Thanks, it did take a little while to get right. I might be able to post some > bits of code if anyone is interested? > > Thanks, > Ash > http://ashleysheridan.co.uk > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > I'm sure lots of us are interested. It's very cool. Nice job! Bastien -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Happy Diamond Jubilee everyone!
Paul M Foster wrote: >On Fri, Jun 01, 2012 at 06:44:17PM +0100, Ashley Sheridan wrote: > >> This is a bit of a shameless plug, but it is a Friday and a pretty >> special weekend over here. >> >> I recently got to work on something a bit fun at work in my spare >time >> and they liked it so much that it got used internally to celebrate >the >> jubilee weekend. >> >> This is the result http://jubilee.themlondon.com >> >> For those of you interested, the leg-work is done by a bunch of PHP >> scripts run in the background via cron, split into 3 tasks: >> >> >> 1. A script goes out and searches Twitter for tweets that >mention >> the jubilee, one instance per keyword and records those to a >DB >> to limit the draw on the Twitter API >> 2. A second script goes over those tweets and pulls in all the >> non-default profile images for each unique user >> 3. Lastly, the image is built as 12 separate tiles every half >hour, >> using PHP and GD to match the average colour of each profile >pic >> to a spot on the image, and then these are stitched together >for >> the final image >> >> Anyway, hope you guys all have a great weekend, more so if you're >> unlucky enough to be working over the whole 4 days :-/ > >*Very* nice work! > >Paul > >-- >Paul M. Foster >http://noferblatz.com >http://quillandmouse.com > >-- >PHP General Mailing List (http://www.php.net/) >To unsubscribe, visit: http://www.php.net/unsub.php Thanks, it did take a little while to get right. I might be able to post some bits of code if anyone is interested? Thanks, Ash http://ashleysheridan.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Simple Email System (SES) Provider
Bastien Koert wrote: >On Fri, Jun 1, 2012 at 8:32 PM, Don Wieland wrote: >> Hi all, >> >> I built a system in PHP/mySQL where a group of users post events, >sign-up >> for events, change their arrival times, remove thier names from >events, and >> post related notes on the events. Each time an action is done, an >email is >> generated to the entire group that their has been a change. Pretty >standard >> stuff... >> >> Today I just got an Mail Delivery System email with this error: >> >> Domain dwdcweb.info has exceeded the max emails per hour (350/350 >(100%)) >> allowed. Message will be reattempted later >> >> I contacted my VPS provider and they just alerted me that there is a >limit >> on how many emails my server can send per hour. >> >> They recommended I find a 3rd party service provider with support PHP >API >> connections. >> >> My budget is limited. Does anyone have any suggestions of companies >that >> might work for my scenario? >> >> Any feedback is appreciated ;-) >> >> Don >> >> -- >> PHP General Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php >> > >Amazon has an email service you can plug in to with php > >http://aws.amazon.com/ses/ > > >-- > >Bastien > >Cat, the other other white meat > >-- >PHP General Mailing List (http://www.php.net/) >To unsubscribe, visit: http://www.php.net/unsub.php Rather than send an email to the group right away, could you not store up messages and send them out with more than one change in? So if person A creates an event, and person B and C sign to attend, your system would hold on and post all 3 messages in the same email. Facebook has a similar system to reduce the number of emails it sends. I tell you, its appreciated by the recipients too more often than not! Thanks, Ash http://ashleysheridan.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php