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

Incredible Demos

  • By
    MooTools-Like Element Creation in jQuery

    I really dislike jQuery's element creation syntax. It's basically the same as typing out HTML but within a JavaScript string...ugly! Luckily Basil Goldman has created a jQuery plugin that allows you to create elements using MooTools-like syntax. Standard jQuery Element Creation Looks exactly like writing out...

  • By
    Background Animations Using MooTools

    One of the sweet effects made easy by JavaScript frameworks like MooTools and jQuery is animation. I ran across this great jQuery tutorial that walks you through animating a background image of a page. Here's a quick MooTools code snippet that...

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!