Archive for the ‘programming’ Category
i hate working with dates
This little snippet gets all the days in a month, and groups them by week.
<?php
error_reporting(E_ALL);
// Return an array of all the days in a month grouped by week number
// (Sunday is considered to be the first day of the week)
function weeksInMonth($month, $year)
{
[...]
Extracing links from HTML using PHP
Many months ago there was a PHP competition to make the smallest script to extract all the links from a document. I’ve lost a link to the actual site, but the rules and conditions were set up expecting everyone to solve the problem with regular expressions. In my opinion relying on regular expressions [...]
Simple type checking in PHP
<?php
error_reporting(E_ALL | E_STRICT);
/*
Manual optional type checking for PHP functions
Basic example:
function log_error($line_number, $filename, $desc)
{
CheckFunctionArgs(’integer’, ’string’, ’string’);
[snip]
}
Object example:
class LogObject {}
function register_object($obj)
{
// Check for [...]
sizeof(int) = 68
Pankaj Kumar has a slightly disturbing look at memory usage in PHP.
Each element requires a value structure (zval) which takes 16 bytes.
Also requires a hash bucket - which takes 36 bytes. That gives 52 bytes
per value. Memory allocation headers take another 8 bytes*2 - which
gives 68 bytes. Pretty close to what you have.
fun with anagrams
<?php
define(’WORD_LIST_FILENAME’, ‘/usr/share/dict/words’);
class AnagramLookup
{
private $lookup;
// Loads a file with one word per line
private function load_word_list($filename)
{
$lines = file($filename); // One word per line
$lines = array_map(’trim’, $lines); // Strip [...]
phpt testing framework
PHPT is the kind framework that encourages testing simply by making everything so easy. All that’s needed is a file with your PHP code and expected output. It wont replace SimpleTest or PhpUnit for anything complicated (say, like PHP itself…) but it seems to be just what I’m after.
There’s little documentation about [...]
Awful code I’ve written today
$row = $table->tr();
if(!($amIAltOrNot = !$amIAltOrNot))
{
$row->class = "alt";
}
// Edit: Much better now
$row = $table->tr();
$row->class = ($amIAltOrNot = !$amIAltOrNot) ? "" : "alt";
More useless PHP - Inplace Reverse
Code
<?php
/*
PHP implementation of a common programming problem:
Reversing a singly linked list
*/
error_reporting(E_ALL | E_STRICT);
// This is our basic node
class WordNode
{
public $word;
public $nextNode;
public function __construct($word = null)
{
[...]
Very Simple (Pretend) SQL Paramaters
<?php
/*
Some hacked up code for Very Simple (Pretend) SQL Paramaters
— For when you don’t have PDO, or just can’t be bothered
Examples:
>>> SQL("SELECT * FROM users WHERE id=? AND name LIKE ?", 123, ‘"123\"’);
SELECT * FROM users WHERE id=123 AND name LIKE [...]
PHP interface for the DecentUrl API
PHP version of the Python script located at http://decenturl.com/tools#api.
Update: Thanks to a quick update by Ben, DecentURL now returns valid JSON, so the quote workaround is no longer needed.
<?php
/*
PHP interface for the DecentUrl service
by Matthew D (project-2501.net)
Based on the Python script by Ben Hoyt
[...]