PHP Woot Checker – Tech, Wine, and Shirt Woot

By  on  

If you haven't heard of Woot.com, you've been living under a rock. For those who have been under the proverbial rock, here's the plot:

  1. Every day, Woot sells one product.
  2. Once the item is sold out, no more items are available for purchase.
  3. You don't know how many of the item is available and you may only buy three at a time.
  4. The shipping, regardless of product price and quantity, is $5.00.
  5. Every once in a while (usually once a month), Woot has a "Woot-off", where they sell item after item until everything is sold out.
  6. Even more rare is the "Bag o' Crap." What are you buying? A bag of crap, but that "BOC" could be a laptop bag strap or a big screen TV. Good luck getting through the checkout process though -- BOC's usually take down the server.
  7. Woot branched out from simply tech products (woot.com) to wine and t-shirts.

Needless to say, Woot is an interesting website. I've created a PHP script that returns the product's name, price, and image.

The Code

//get the page content
$woot_content = file_get_contents('http://shirt.woot.com');

//parse for product name
$name = get_match('/<h3[^>]*>(.*)</h3>/is',$woot_content);

//parse for product price
$price = get_match('/<div class="price"><span id="PriceSpan">(.*)<dl class="saleSpecs">/is',$woot_content);

//parse for product image
$image = get_match('/<div class="saleContainer">(.*?)/>/is',$woot_content).' />';

//parse for product sold out?
$sold_out = substr_count(strtolower($woot_content),'sold out!') ? 'Sold Out!' : 'Product Left!';

$content.= '<h1>Product Name</h1>'.$name.'<br /><br />';
$content.= '<h1>Product Price</h1>'.$price.'<br /><br />';
$content.= '<h1>Product Image</h1>'.$image.'<br /><br />';
$content.= '<h1>Product Sold Out?</h1>'.$sold_out.'<br /><br />';

//gets the match content
function get_match($regex,$content)
{
	preg_match($regex,$content,$matches);
	return $matches[1];
}

A few notes about the code:

  • You can get the content using the file_get_contents() function or my URL Download Content function. Your preference will depend on your server's security settings.
  • You may use the following URL's, depending on the content/product you want:
    • http://woot.com
    • http://shirt.woot.com
    • http://wine.woot.com

Recent Features

  • By
    CSS 3D Folding Animation

    Google Plus provides loads of inspiration for front-end developers, especially when it comes to the CSS and JavaScript wonders they create. Last year I duplicated their incredible PhotoStack effect with both MooTools and pure CSS; this time I'm going to duplicate...

  • By
    CSS Animations Between Media Queries

    CSS animations are right up there with sliced bread. CSS animations are efficient because they can be hardware accelerated, they require no JavaScript overhead, and they are composed of very little CSS code. Quite often we add CSS transforms to elements via CSS during...

Incredible Demos

  • By
    CSS Transforms

    CSS has become more and more powerful over the past few years and CSS transforms are a prime example. CSS transforms allow for sophisticated, powerful transformations of HTML elements.  One or more transformations can be applied to a given element and transforms can even be animated...

  • By
    Animated AJAX Record Deletion Using jQuery

    I'm a huge fan of WordPress' method of individual article deletion. You click the delete link, the menu item animates red, and the item disappears. Here's how to achieve that functionality with jQuery JavaScript. The PHP - Content & Header The following snippet goes at the...

Discussion

  1. That is cool…

    Now you need to have the script send a txt message to my phone every night at midnight CST.

  2. @Mark: Shouldn’t you be at the computer already? Hah. There’s also a Firefox plugin that tells you the day’s woot:

    https://addons.mozilla.org/en-US/firefox/addon/4458

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!