> Hvis man nu gerne vil lave en stregkode med PHP... er der nogen der
> ved hvordan man gør det?
Jeg har engang lavet en. Den ligger på
http://mbn.dk/test/code39.php?str=hej
Her kommer kilden:
------------------------------------------------------------------------------
<?php
$code[0] = array("n", "n", "n", "w", "w", "n", "w", "n", "n");
$code[1] = array("w", "n", "n", "w", "n", "n", "n", "n", "w");
$code[2] = array("n", "n", "w", "w", "n", "n", "n", "n", "w");
$code[3] = array("w", "n", "w", "w", "n", "n", "n", "n", "n");
$code[4] = array("n", "n", "n", "w", "w", "n", "n", "n", "w");
$code[5] = array("w", "n", "n", "w", "w", "n", "n", "n", "n");
$code[6] = array("n", "n", "w", "w", "w", "n", "n", "n", "n");
$code[7] = array("n", "n", "n", "w", "n", "n", "w", "n", "w");
$code[8] = array("w", "n", "n", "w", "n", "n", "w", "n", "n");
$code[9] = array("n", "n", "w", "w", "n", "n", "w", "n", "n");
$code['A'] = array("w", "n", "n", "n", "n", "w", "n", "n", "w");
$code['B'] = array("n", "n", "w", "n", "n", "w", "n", "n", "w");
$code['C'] = array("w", "n", "w", "n", "n", "w", "n", "n", "n");
$code['D'] = array("n", "n", "n", "n", "w", "w", "n", "n", "w");
$code['E'] = array("w", "n", "n", "n", "w", "w", "n", "n", "n");
$code['F'] = array("n", "n", "w", "n", "w", "w", "n", "n", "n");
$code['G'] = array("n", "n", "n", "n", "n", "w", "w", "n", "w");
$code['H'] = array("w", "n", "n", "n", "n", "w", "w", "n", "n");
$code['I'] = array("n", "n", "w", "n", "n", "w", "w", "n", "n");
$code['J'] = array("n", "n", "n", "n", "w", "w", "w", "n", "n");
$code['K'] = array("w", "n", "n", "n", "n", "n", "n", "w", "w");
$code['L'] = array("n", "n", "w", "n", "n", "n", "n", "w", "w");
$code['M'] = array("w", "n", "w", "n", "n", "n", "n", "w", "n");
$code['N'] = array("n", "n", "n", "n", "w", "n", "n", "w", "w");
$code['O'] = array("w", "n", "n", "n", "w", "n", "n", "w", "n");
$code['P'] = array("n", "n", "w", "n", "w", "n", "n", "w", "n");
$code['Q'] = array("n", "n", "n", "n", "n", "n", "w", "w", "w");
$code['R'] = array("w", "n", "n", "n", "n", "n", "w", "w", "n");
$code['S'] = array("n", "n", "w", "n", "n", "n", "w", "w", "n");
$code['T'] = array("n", "n", "n", "n", "w", "n", "w", "w", "n");
$code['U'] = array("w", "w", "n", "n", "n", "n", "n", "n", "w");
$code['V'] = array("n", "w", "w", "n", "n", "n", "n", "n", "w");
$code['W'] = array("w", "w", "w", "n", "n", "n", "n", "n", "n");
$code['X'] = array("n", "w", "n", "n", "w", "n", "n", "n", "w");
$code['Y'] = array("w", "w", "n", "n", "w", "n", "n", "n", "n");
$code['Z'] = array("n", "w", "w", "n", "w", "n", "n", "n", "n");
$code['-'] = array("n", "w", "n", "n", "n", "n", "w", "n", "w");
$code['.'] = array("w", "w", "n", "n", "n", "n", "w", "n", "n");
$code['¤'] = array("n", "w", "w", "n", "n", "n", "w", "n", "n"); // Space
$code['*'] = array("n", "w", "n", "n", "w", "n", "w", "n", "n");
$code['$'] = array("n", "w", "n", "w", "n", "w", "n", "n", "n");
$code['/'] = array("n", "w", "n", "w", "n", "n", "n", "w", "n");
$code['+'] = array("n", "w", "n", "n", "n", "w", "n", "w", "n");
$code['%'] = array("n", "n", "n", "w", "n", "w", "n", "w", "n");
// ================================================================= //
function bar(&$im, $x, $size, $color) {
global $height, $black, $red;
switch ($size) {
case "w":
$y = $x + 3;
break;
case "n":
$y = $x;
break;
}
switch ($color) {
case "b":
$bar_color = $black;
break;
case "w":
$bar_color = $white;
break;
case "r":
$bar_color = $red;
break;
}
imagefilledrectangle($im, $x, 0, $y, $height-12, $bar_color);
}
$width = 181;
$height = 50;
$pixel = 10;
$im = imagecreate($width, $height);
$white = ImageColorAllocate($im, 255, 255, 255);
$black = ImageColorAllocate($im, 0, 0, 0);
$red = ImageColorAllocate($im, 255, 0, 0);
imagestring($im, 2, $pixel, 37, $str, $black);
$str = str_replace(" ", "¤", $str);
$str = strtoupper("*$str*");
if ($debug) print "<pre>";
for ($i=0; $i<strlen($str); $i++) {
$char = $str[$i];
$values = $code[$char];
foreach($values as $type) {
$color = $a++ %2 ? "w" : "b";
bar($im, $pixel, $type, $color);
//if ($a != 9) {
if ($type == "w") {
$pixel += 3;
} else {
$pixel += 1;
}
//}
if ($debug) print "$type, $color\n";
}
bar($im, $pixel, "w", "w"); // intercharacter gap
$pixel += 3;
unset($a);
if ($debug) print "\n";
}
if ($debug) print "</pre>";
if (!$debug) {
header("Content-type: image/png");
ImagePng($im);
}
?>
------------------------------------------------------------------------------
Indryk er blevet smadret :-/
Håber at den er til at forstå...
--
Morten Blinksbjerg Nielsen, Odense
http://www.mbn.dk/ -
http://www.websmed.dk/