Validate Domain

<?php

/**
 * validate_domain
 *
 * validate domain
 *
 * @version 0.5
 * @author Contributors at eXorithm
 * @link https://www.exorithm.com/algorithm/view/validate_domain Listing at eXorithm
 * @link https://www.exorithm.com/algorithm/history/validate_domain History at eXorithm
 * @license https://www.exorithm.com/home/show/license
 *
 * @param mixed $domain 
 * @return bool
 */
function validate_domain($domain='www.google.com')
{
	return preg_match ("/^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu)$/i", $domain);
}

?>

eXorithm – Execute Algorithm: Discuss Algorithm sort_multi_array

sort_multi_array     version 0.1     Sort a two-dimensional array by one (or more) of the elements in the nested arrays. Accepts a variable number of arguments.Subject: Usage Example for sort_multi_array would be useful

optionzz posted: Jan 2, 2014 08:02 pm [reply]

I have a TOUGH time wrapping my head around the strange php array design. All I need to do is use a matrix with numeric indexes for each dimension. Somehow, EVERY example uses names for the "columns" in the second index. If I want that, I’ll use SQL.

Sorry, complaining won’t help. I’d love to see how this would work for a normal 2 dim array like

0 1 2 3

0 (0,0) (0,1) (0,2) (0,3)



2



4 (4,0) (4,1) (4,2) (4,4)

I want to sort all 5 rows based on any of the column NUMBERS (there are no names).

I’m pretty new to PHP but not to programming. Perhaps someone could help break the logjam in my head that REFUSES to understand arrays inside arrays with names instead of numbers, but most importantly, how to make the sort work!

Thanks.

Subject: Usage Example for sort_multi_array would be useful

optionzz posted: Jan 2, 2014 07:58 pm [reply]

I have a TOUGH time wrapping my head around the strange php array design. All I need to do is use a matrix with numeric indexes for each dimension. Somehow, EVERY example uses names for the "columns" in the second index. If I want that, I’ll use SQL.

Sorry, complaining won’t help. I’d love to see how this would work for a normal 2 dim array like

0 1 2 3

0 0,0 0,1 0,2 0,3

1 1,0 1,2…





New Comment

eXorithm – Execute Algorithm: Discuss Algorithm magic8ball

magic8ball     version 0.2     Ask the magic 8 ball your question.Subject: magic8ball

Haldan posted: Feb 22, 2012 04:57 am [reply]

function magic8ball() {

$answers = array(‘It is certain’, ‘It is decidedly so’, ‘Without a doubt’,

‘Yes – definitely’, ‘You may rely on it’, ‘As I see it, yes’,

‘ Most likely’, ‘Outlook good’, ‘Signs point to yes’, ‘Yes’,

‘Reply hazy, try again’, ‘Ask again later’,

‘Better not tell you now’, ‘Cannot predict now’,

‘Concentrate and ask again’, ‘Dont bet on it’,

‘My reply is no’, ‘My sources say no’, ‘Outlook not so good’,

‘Very doubtful’ );

$index = rand(0, count($answers));

return ($answers[$index]);

New Comment

Draw UPC Barcode

<?php

/**
 * draw_upc_barcode
 *
 * Draw a barcode for a UPC number.
 *
 * @version 0.3
 * @author Contributors at eXorithm
 * @link https://www.exorithm.com/algorithm/view/draw_upc_barcode Listing at eXorithm
 * @link https://www.exorithm.com/algorithm/history/draw_upc_barcode History at eXorithm
 * @license https://www.exorithm.com/home/show/license
 *
 * @param mixed $number The 12-digit UPC number.
 * @param bool $show_numbers Whether to draw the numbers at the bottom of the barcode.
 * @return resource GD image
 */
function draw_upc_barcode($number='925853043217',$show_numbers=true)
{
	$number = str_replace(array('-',' '), '', $number);
	
	if (strlen($number)!=12)
		throw new Exception("UPC number must have 12 digits");
	
	for ($i=0;$i<12;$i++) {
		if (!is_numeric($number[$i]))
			throw new Exception("UPC number must contain only digits");
	}
	
	$lcodes = array(
		'0001101',
		'0011001',
		'0010011',
		'0111101',
		'0100011',
		'0110001',
		'0101111',
		'0111011',
		'0110111',
		'0001011',
	);
	
	$rcodes = array(
		'1110010',
		'1100110',
		'1101100',
		'1000010',
		'1011100',
		'1001110',
		'1010000',
		'1000100',
		'1001000',
		'1110100',
	);
	
	$code = '101';
	for ($i=0;$i<6;$i++) {
		$code .= $lcodes[$number[$i]];
	}
	$code .= '01010';
	for ($i=6;$i<12;$i++) {
		$code .= $rcodes[$number[$i]];
	}
	$code .= '101';
	
	// create image
	$width=190;
	$height=100;
	$image = image_create_alpha($width, $height);
	
	$white = imagecolorallocate($image, 255, 255, 255);
	imagefilledrectangle($image, 0, 0, $width, $height, $white);
	
	// draw lines
	$black = imagecolorallocate($image, 0, 0, 0);
	for ($i=0;$i<strlen($code);$i++) {
		if ($code[$i]=='1') {
			imageline($image, $i*2,0, $i*2, $height, $black);
			imageline($image, $i*2+1,0, $i*2+1, $height, $black);
		}
	}
	
	// draw numbers
	if ($show_numbers) {
		imagefilledrectangle($image, 6, $height-16, 90, $height, $white);
		imagefilledrectangle($image, 98, $height-16, 182, $height, $white);
		for ($i=0;$i<6;$i++) {
			imagestring($image, 2, 11+$i*14, $height-14, $number[$i], $black);
		}
		for ($i=6;$i<12;$i++) {
			imagestring($image, 2, 19+$i*14, $height-14, $number[$i], $black);
		}
	}
	
	return $image;
}

/**
 * image_create_alpha
 *
 * Helper function to create a new blank image with transparency.
 *
 * @version 0.1
 * @author Contributors at eXorithm
 * @link https://www.exorithm.com/algorithm/view/image_create_alpha Listing at eXorithm
 * @link https://www.exorithm.com/algorithm/history/image_create_alpha History at eXorithm
 * @license https://www.exorithm.com/home/show/license
 *
 * @param mixed $width 
 * @param mixed $height 
 * @return resource GD image
 */
function image_create_alpha($width='',$height='')
{
	// Create a normal image and apply required settings
	$img = imagecreatetruecolor($width, $height);
	imagealphablending($img, false);
	imagesavealpha($img, true);
	
	// Apply the transparent background
	$trans = imagecolorallocatealpha($img, 0, 0, 0, 127);
	for ($x = 0; $x < $width; $x++)
	{
		for ($y = 0; $y < $height; $y++)
		{
			imagesetpixel($img, $x, $y, $trans);
		}
	}
	
	return $img;
}

?>