imagestring

(PHP 4, PHP 5)

imagestringDraw a string horizontally

Description

bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )

Draws a string at the given coordinates.

Parameters

image

An image resource, returned by one of the image creation functions, such as imagecreatetruecolor().

font

Can be 1, 2, 3, 4, 5 for built-in fonts in latin2 encoding (where higher numbers corresponding to larger fonts) or any of your own font identifiers registered with imageloadfont().

x

x-coordinate of the upper left corner.

y

y-coordinate of the upper left corner.

string

The string to be written.

color

A color identifier created with imagecolorallocate().

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example #1 imagestring() example

<?php
// Create a 100*30 image
$im imagecreate(10030);

// White background and blue text
$bg imagecolorallocate($im255255255);
$textcolor imagecolorallocate($im00255);

// Write the string at the top left
imagestring($im500'Hello world!'$textcolor);

// Output the image
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

The above example will output something similar to:

Output of example : imagestring()

See Also

add a note add a note

User Contributed Notes 30 notes

up
26
keksnicoh at googlemail dot com
9 years ago
Some fun with imagestring:

This function is a product of too much time..
It opens an image and create a new image with one letter instead of a pixel.

<?php
error_reporting
(E_ALL);
/**
* generates a image with chars instead of pixels
*
* @param string $url Filepath or url
* @param string $chars The chars which should replace the pixels
* @param int $shrpns Sharpness (2 = every second pixel, 1 = every pixel ... )
* @param int $size
* @param int $weight font-weight/size
* @return sesource
* @author Nicolas 'KeksNicoh' Heimann <www.salamipla.net>
* @date 02nov08
*/
function pixelfuck($url, $chars='ewk34543§G§$§$Tg34g4g', $shrpns=1, $size=4,$weight=2)
{
    list(
$w, $h, $type) = getimagesize($url);
   
$resource = imagecreatefromstring(file_get_contents($url));
   
$img = imagecreatetruecolor($w*$size,$h*$size);

   
$cc = strlen($chars);
    for(
$y=0;$y <$h;$y+=$shrpns)
        for(
$x=0;$x <$w;$x+=$shrpns)
           
imagestring($img,$weight,$x*$size,$y*$size, $chars{@++$p%$cc}, imagecolorat($resource, $x, $y));
    return
$img;
}

$url = 'http://upload.wikimedia.org/wikipedia/commons/b/be/Manga_Icon.png';
$text = 'I-dont-like-manga-...-Why-do-they-have-such-big-eyes? Strange-...-WHAT-WANT-YOU-DO?';

Header('Content-Type: image/png');
imagepng(pixelfuck($url, $text, 1, 6));
?>

Have fun  :)
up
8
Booteille
2 years ago
Here is a function with similar declaration of imagestring() but who handles whitespaces (It creates new lines and 4 spaces instead of \n and \t) and image's size limits

<?php

/**
* @author Booteille
*
* @param resource $image
* @param int $font
* @param int $x
* @param int $y
* @param string $string
* @param int $color
*/
function whitespaces_imagestring($image, $font, $x, $y, $string, $color) {
   
$font_height = imagefontheight($font);
   
$font_width = imagefontwidth($font);
   
$image_height = imagesy($image);
   
$image_width = imagesx($image);
   
$max_characters = (int) ($image_width - $x) / $font_width ;
   
$next_offset_y = $y;

    for(
$i = 0, $exploded_string = explode("\n", $string), $i_count = count($exploded_string); $i < $i_count; $i++) {
       
$exploded_wrapped_string = explode("\n", wordwrap(str_replace("\t", "    ", $exploded_string[$i]), $max_characters, "\n"));
       
$j_count = count($exploded_wrapped_string);
        for(
$j = 0; $j < $j_count; $j++) {
           
imagestring($image, $font, $x, $next_offset_y, $exploded_wrapped_string[$j], $color);
           
$next_offset_y += $font_height;

            if(
$next_offset_y >= $image_height - $y) {
                return;
            }
        }
    }
}

?>
up
-1
brooks dot boyd at gmail dot com
13 years ago
Drawing a string as an image is a handy way to disguise an eMail address so spam sniffers can't get it as easily. The only catch to creating a dynamic image with your eMail in it is the eMail to be displayed must be passed via the query string to enable static HTML to use it. So, the eMail must be encrypted slightly in order to not defeat the purpose of not typing your eMail address outright. I wrote the following script to do so:

Save the following as email.php
<?php
   
if ($_GET['addr'] != "") {
       
$msg = $_GET['addr'];
       
$msg = preg_replace("/\[dot]/",".",$msg);
       
$msg = preg_replace("/\[at]/","@",$msg);
       
$final = "";
        for (
$i=0; $i<=strlen($msg); $i++) {
           
$final .= substr($msg, strlen($msg)-$i, 1);
        }
       
$msg = $final;

       
$char_width = 8;
       
$char_height = 17;
       
$padding = 3;
       
$width = $padding*2+strlen($msg)*$char_width;
       
$height = +$padding*2+$char_height;
       
$im = imagecreatetruecolor($width,$height);
       
imagealphablending($im, FALSE);
       
imagesavealpha($im, TRUE);
       
$bg = imagecolorallocatealpha($im, 255, 255, 0, 100);
       
$text = imagecolorallocatealpha($im, 0, 0, 0, 0);
       
imagefilledrectangle ($im, 0, 0, $width, $height, $bg); # Make transparent
       
imagestring($im, 4, $padding, $padding, $msg, $text);
    } else {
       
$im = imagecreatetruecolor(1,1);
       
imagealphablending($im, FALSE);
       
imagesavealpha($im, TRUE);
       
$bg = imagecolorallocatealpha($im, 255, 0, 0, 125);
       
imagefilledrectangle ($im, 0, 0, 1, 1, $bg); # Make transparent
   
}
   
header('Content-type: image/jpg');
   
imagepng($im);
   
imagedestroy($im);

?>

If the script is called without an eMail address, it outputs a 2x2 transparent image.

To call the script to generate the eMail "user@home.com", the HTML tag would be:

<img src="email.php?addr=moc[dot]emoh[at]resu">

To 'encrypt' the eMail address to pass to the script, write the address backwards and replace "." with "[dot]" and "@" with "[at]". It's not the most ironclad protection, but it thwarts most casual eMail sniffers.
up
-1
php dot net at mvoncken dot nl
14 years ago
A simple example:
To make one line of text fit in the image.

<?php
header
("Content-type: image/png");
$string = "spam@mvoncken.nl";                                             
$font   = 4;
$width  = ImageFontWidth($font) * strlen($string);
$height = ImageFontHeight($font);

$im = @imagecreate ($width,$height);
$background_color = imagecolorallocate ($im, 255, 255, 255); //white background
$text_color = imagecolorallocate ($im, 0, 0,0);//black text
imagestring ($im, $font, 0, 0$string, $text_color);
imagepng ($im);
?>

I use something like this for spamprotection of my visitors (pass userid as an url-parameter for this php)
up
-2
god at in-heaven dot org
11 years ago
Here's a simple function for creating an aligned string which is cutted to match the space between $x1 and $x2
<?php
function imagestringcutted($img,$font,$y,$x1,$x2,$text,$color,$align="center") {
   
$fontwidth = imagefontwidth($font);
   
$fullwidth = strlen($text) * $fontwidth;
   
$maxwidth = $x2-$x1;
   
$targetwidth = $fullwidth-(4*$fontwidth);
    if(
$fullwidth > $maxwidth) {
        for(
$i = 0; $i < strlen($text) AND ((strlen($text)-($i-4))*$fontwidth) > $targetwidth ;$i++) { }
       
$text = substr($text,0,(strlen($text)-$i)-4)."...";
    }
    if(
$align == "left") imagestring($img,$font,$x1,$y,$text,$color);
    elseif(
$align == "right") imagestring($img,$font,$x2 - ((strlen($text) * $fontwidth)),$y,$text,$color);
    else
imagestring($img,$font,($x2-$x1)/ 2 - strlen($text) * $fontwidth / 2,$y,$text,$color);
}
?>
Usage:
<?php
imagestringcutted
($img,$font,$y,$x1,$x2,$text,$color,$align);
?>
Will create a string $text, which is cutted if it's too long to match between  $x1 and $2, on $img with font $font and color $color at height $y and with align to $align.
Hope it will help some people.
Sorry for my bad English.
up
-2
rush at 507magazine dot com
11 years ago
hello, I noticed that if you put a rand(3,5) it will put random sizes of font to each character put on the image. this is very useful when programming captchas for anti-spam form verification.
up
-2
julien / at / theoconcept.com
11 years ago
If you are looking for a way to generate a "CAPTCHA" image for a form verification (to verify it is not a robot), have a look at this : http://blog.theoconcept.com/static/distortion/

It gives an animated image with the parameter string, with distortion, here is an example :
http://blog.theoconcept.com/static/distortion/distortion.php

(*)  You'll need GD + Freetype support
(**) You'll need ImageMagick on the machine
up
-2
m dot onderwater at esperantoxl dot nl
12 years ago
There is a small error in the function for horizontal and vertical centering by "jurgen dot vanoosterwijck at pandora dot be"

the line

$cy = (imagesy($img)/2) - (imagefontwidth($font)/2);

should be

$cy = (imagesy($img)/2) - (imagefontheight($font)/2);
up
-2
tjpoe at cableaz dot com
12 years ago
i modified the centering functions and created this which centers each word on it's own line. You can adjust the spacing with the $valign var. currently no implimentation if text is too large for image. strings are tokenized by space, but can obviously be changed.

function ImageStringWrap($image, $font, $text, $color)
{
  $fontwidth = ImageFontWidth($font);
  $fontheight = ImageFontHeight($font);
  $words= str_word_count($text);
  if ($words > 1){
    $string=array(strtok($text,' '));
    for ($i = 1 ; $i <= $words ; $i++){
      $string=array_merge($string,array($i=>strtok(' ')));
    }
  }
  else
    $string=$text;
  $vspace=4;
  $y=((imagesy($image)-($fontheight*$words)-($words*$vspace))/2);
  foreach($string as $st){
    $x=((imagesx($image)-($fontwidth * strlen($st)))/2);
    ImageString($image,$font,$x,$y,$st,$color);
    $y+=($fontheight+$vspace);
  }
}
hope this is helpful
up
-2
bpgordon at gmail dot com
12 years ago
This code produces a png image of the text within the query. It autofits to the length of the string.
Usage: http://yoursite.com/text.php?abcdefg+hijk

Use + to produce a space in the image. The + can be excaped with a carat (^). Most other symbols work fine in the query string, like the ?.

<?php
header
("Content-type: image/png");
$string = $_ENV["QUERY_STRING"];
$md5 = md5($string); //just so we don't convert valid text into a +
$string = str_replace("^+", $md5, $string); //replaces ^+ with long, unnatural string
$string = str_replace("+", " ", $string); //replaces + with space
$string = str_replace($md5, "+", $string); //replaces the long, unnatural string with +
$width  = imagefontwidth($font) * strlen($string);
$height = imagefontheight($font);
$image = @imagecreate($width+2, $height+2);
$black = imagecolorallocate($image, 0, 0, 0); //background
$white = imagecolorallocate($image, 255, 255, 255);
imagestring($image, 2, 1, 1$string, $white);
imagepng($image);
imagedestroy($image);
?>
up
-2
cesargus at yahoo dot com
13 years ago
//simple hello world

<?
header
("Content-type: image/png");

$img_handle = ImageCreate (200, 20) or die ("Cannot Create image");
$back_color = ImageColorAllocate ($img_handle, 0, 10, 10);
$txt_color = ImageColorAllocate ($img_handle, 235, 235, 51);
ImageString ($img_handle, 10, 25, 5"Hello world!", $txt_color);
ImagePng ($img_handle);
?>
up
-2
deejay_world at yahoo dot com
15 years ago
Width ImageString, the strings you draw are not automatically wrapped width the edge of the image. You may use this function to automatically wrap them:

function ImageStringWrap($image, $font, $x, $y, $text, $color, $maxwidth)
{
    $fontwidth = ImageFontWidth($font);
    $fontheight = ImageFontHeight($font);

    if ($maxwidth != NULL) {
        $maxcharsperline = floor($maxwidth / $fontwidth);
        $text = wordwrap($text, $maxcharsperline, "\n", 1);
      }

    $lines = explode("\n", $text);
    while (list($numl, $line) = each($lines)) {
        ImageString($image, $font, $x, $y, $line, $color);
        $y += $fontheight;
      }
}

So, in particular, if you want to wrap a text with the edge of the Image, you may do:
ImageStringWrap($img, $font, 0, $y, $text, $color, ImageSX($img) );
up
-1
jlamer
10 years ago
//  Example of use...

//  This is a simple function to output text to an image
//  which is centered (as much as I want to do by eye)
//  and wrapped
//    Just remember that all the sizes are guessed
// doesn't cut on the space (only on number of characters)
//  or change color of text, but this isn't for that...
function imageCenterString( $imgw, $imgh,
   $image_text = '', $text_size=5 )
{
   $im = imagecreate( $imgw, $imgh );
   
   // white background and blue text
   $bg = imagecolorallocate($im, 255, 255, 255);
   $textcolor = imagecolorallocate($im, 0, 0, 0);
   
   $t_h = $t_w = $t_x = $t_y = 0;
   $base_w =9; $base_h = 16;
   $m = 0.88;
   switch ( $text_size )
   {
      case 1: $t_w = $base_w*pow(($m*.98),4);
         $t_h = $base_h*pow(($m*.98),4);
         break;
      case 2: $t_w = $base_w*pow($m,3);
         $t_h = $base_h*pow($m,3);
         break;
      case 3: $t_w = $base_w*pow($m,2);
         $t_h = $base_h*pow($m,2);
         break;
      case 4: $t_w = $base_w*$m;
         $t_h = $base_h*$m;
         break;
      case 5: $t_w = $base_w;
         $t_h = $base_h;
         break;
      default:
         if ( $text_size >= 5 ) // set to 5
         {   $t_w = $base_w; $t_h = $base_h; }
         if ( $text_size < 5 ) // set to 1
         {
            $t_w = $base_w*pow(($m*.98),4);
            $t_h = $base_h*pow(($m*.98),4);
         }
         break;
   }
   
   $text_array = array();
   
   $max = floor($imgw/$t_w);
   
   for( $i=0; strlen($image_text) > 0; $i += $max)
   {
      array_push($text_array, substr($image_text,0,$max));
      if ( strlen($image_text) >= $max )
      {   $image_text = substr($image_text,$max); }
      else
      {   $image_text = ''; }
   }
   
   $t_y = ($imgh/2) - ($t_h*count($text_array)/2);

   foreach ( $text_array as $text )
   {
      $t_x = ($imgw/2)-($t_w*strlen($text)/2);
      imagestring($im, $text_size, $t_x, $t_y,
         $text, $textcolor);
      $t_y += $t_h;
   }

   // output the image
   header("Content-type: image/gpeg");
   imagejpeg($im);
}
up
-1
aly at slo-igre dot net
12 years ago
There is an error in "tjpoe at cableaz dot com" 's function ImageStringWrap. Instead of

    else
           $string = $text;

there should be

     else
           $string = array($text);

for function to work for strings with only one word. Otherwise it works like a charm, thanks.
up
-2
sk89q
9 years ago
Creates a box of text. Has horizontal and vertical alignment, box arguments, and custom leading. I submitted this to the manual in 2003 actually, but it disappeared after a year or so (not sure why). Here it is again.

<?php
define
("ALIGN_LEFT", "left");
define("ALIGN_CENTER", "center");
define("ALIGN_RIGHT", "right");
define("VALIGN_TOP", "top");
define("VALIGN_MIDDLE", "middle");
define("VALIGN_BOTTOM", "bottom");

function
imagestringbox(&$image, $font, $left, $top, $right, $bottom, $align, $valign, $leading, $text, $color)
{
  
// Get size of box
  
$height = $bottom - $top;
  
$width = $right - $left;
 
  
// Break the text into lines, and into an array
  
$lines = wordwrap($text, floor($width / imagefontwidth($font)), "\n", true);
  
$lines = explode("\n", $lines);
 
  
// Other important numbers
  
$line_height = imagefontheight($font) + $leading;
  
$line_count = floor($height / $line_height);
  
$line_count = ($line_count > count($lines)) ? (count($lines)) : ($line_count);
 
  
// Loop through lines
  
for ($i = 0; $i < $line_count; $i++)
   {
      
// Vertical Align
      
switch($valign)
       {
           case
VALIGN_TOP: // Top
              
$y = $top + ($i * $line_height);
               break;
           case
VALIGN_MIDDLE: // Middle
              
$y = $top + (($height - ($line_count * $line_height)) / 2) + ($i * $line_height);
               break;
           case
VALIGN_BOTTOM: // Bottom
              
$y = ($top + $height) - ($line_count * $line_height) + ($i * $line_height);
               break;
           default:
               rmturIGN_BOTTOM"
cesargus nbsp;
  
// Break t">wbDo_xsp;                floor
Trd">);
$string < $l]ntwidth($width / imagefonp;        rmtuspan class="comment">// Vertical Alig
      
switch($valign)
  &nspan classbreak;
           case VALIGN_BOTTOM
: x/ Middle
             >=
$right * $line_height);
           
           case VALIGN_BOTTOM
: x/ Middle
             >= $y wbDo_xsp;  t">// Breclass="default">$line_count * $line_right * $line_height);
           
           case VALIGN_BOTTOM
: x/ Middle
             >= y wbDo_xsp;  t">// Breclass="default">$line_count * $line_height);
               break;
           default:
               rmturIGN_BOTTOM"
cesargus Drawss="default">nbsp;
  
255);
imagestring$image$image">explode(< $l]eading, $w(($m*.98),4);
    (($m*.98),4);
sp;        defaurd">)),
, $img_handle} 04m> id="53740">
id="53740">
04m>04m>aly at slo-igre do2-28 08:0>
9 years agI   wanlookere toe...<,ImageStne. the iv class="te; I'mom222promisiv cperfe
there ( s"> particular, i$xMin i$xMa (list($>tho wrap p;   $lines = expl">= thbsp;  $image_text $xLocr />i$xMa -i$xMin -i$>= particular, i$xLoc(list($>tho wrap pput the image
   header("Content-type: image/gpeg");
}7199> id="73346">
id="73346">
t199><=image/gp"tally" id="V81829" title="41% lig -1
aly at slo-igre6-12 com<6:53
9 years agIote down!" bet
//& do 1de">//ext to_txtext to wrap a=000000t($>r />&nicular,&nicuw=300p;   $lines&nbsreach (  nt);6) wrap absp;;;;;;bsp;   }{
 fwmagn dot vanoosterr)
{
 timageap($text, $maxsp;   = wordwrage_textrsperline, "\n", erString( $imgw, $$wo (($vspa />&nbsspan = word*($>r /> <= $words ; $ $imgh );
   
   // white wrap absptext
   $bxFF s"> />&nnmaspanbsp; $x10) $bxFF s"> />&nnmaspanbsp; $x8) $bxFF s"> /&nnmbsp; // white wr = imagecolorallop;   ;timanbsp; $tp;   $lines = expl"br />($w bsp;fwmpace))/2);; $tp/spanarray as $text )
&bsp; {
  You may use this function $image)-($fontwidth * stt_x,($vs+($>r /> bsp;   ImageStribsp; Imsp; $t_' += $t_h;
 p; /' bsp;   Imdie(;  // outpput the image
   header("Content-type: image/gpeg");
}93353
93353<=image/gp"tally" id="V81829" title="41% lijp; ansl+hij."> s..."> -1
aly at slo-igre9-e9-e4m
<8>
9 years agH/strong> sm (asbtedIumadel; true);
 &nbpreg_splipan>$lines$image">explode
1true0bsp;&of lettrue);
 &nb6)),
$leading;
   )),
             37yword">,              23word">, truebsp;&o lettruetruetrue$valibsp;          break;=t
$right *
* * true$linnexplodetrue* * truetruetrue$valibsp;          break;$leading$validefault">$valibsp;          break;* 255pexplodeimagestring($image$image">explode$">explode$line_count * $leading;
                &nbs class="default">$validefault">$valibsp;          break;$validefault">$validefault">$valibsp;          break;*     &ndth true* 255pexplodeimagestring($image$image">explode$">explode$line_count * $valibsp;        &n i", $img_handlee018, $tring&vote=up" title="Vote up!" clas018, id="81829">
t018, =image/gp"tally" id="V81829" title="41% liEpidemiahis..."> -2
1-03 05:06
9 years agIts difi streasybsp;  elsr/>{there i and wpan>, 255rd">);

function $valignamp;$image$leading, $text/ iclass="default">$line_count 0$line_count <||gnamp;iclass="default">$line_count = (, amp;iclass="default">$line_count for (nupan>$heigas    <$line_ ($imgw/2)-($t_w*strlen($text)/2);xt)/2);xt)/2);xt)/2);xt)/2);t)/2);x  <, 10$line_ ($imgw/2)-($t_w*strlen($text)/2);xt)/2);xt)/2);xt)/2);xt)/2);t)/2);x  <, 10   $text_a/ Break t">wbDo_xsp;          &nce s.n class="default">255nbsp;             floor
Trd">);$lntwidthamp;]tnfor (xt)/2);xt)/2);t)/2);xk t">wbDo_xsp;          &nclass=ottom"$valtop a/ Break t">wbDo_xsp;              &nbsmagewbDo_xsp;          &nass="s class="default">$imageo;

function $valtop o;

function
(amp;]tn]height$line_right 255;

function
$valignamp;$image($image$image/ring($image$leading, $put the i", $img_handle}71038
t1038<=image/gp"tally" id="V81829" title="41% liPiotum2 Suleckij.">traxelek="V8ikm2 p s..."> -1
aly at slo-igre6-11-09 03:1>
12 years ago
for function to work for strings with only one word. Othe775se it works like a charm, thanks. 775se tring&vote=up" title="Vote up!" clas775s id="81829">
775se=image/gp"tally" id="V81829" title="41% lim= arrt m= a-griffithsd="Hcomd="Hcukis..."> -2
<8>
9 years agIoimgw, p;&nd (tualativivusiv cStne.ly on number .har toe.mgw, g> sthere of anumber .ss="keyonumber a betr"ta$y, /span>{< o&maskhmagclae addresses. a"wbDo_xsp;        s="keywo'nbs>@ex"> le.bsp'class="default">$image; a"$c nual inn>wbDo_xsp;          &n4class="default">$image; a"wbDo_xsp;          &nclass/span>$width / p; {&$*nbsp;             floor
Trd">);255// Other important numbers
  
$line_height = $; nual inn>// Other important numbers
  
.mgw, s="default">$line_height
= $width $; nual inn>   .r /> &npan class="default">255;

function
$valign, 10, 10, { nual inn>   .r /> &npan class="default">255;

function
$valign, 10, 10, /sps="key nual inn>  
Trd">);255truefor (< /sps="key nual inn>truefor (truefor (truen nuof /sp.haractuaass="text" ly ight true$line_height$width / p; {&$; ight 255;

function
$valignamp;p; {&$image($image($image1, $p ight wbDo_xsp;          , nbsp;   floor
Trd">);25510$p/span> gifpan class="string">"VALIGN_BOTTO nual inn>&nbsgifpan class="default">255;

function
$val); nual inn>$imageo;

function
$valt; a", $img_handle 019se tring&vote=up" title="Vote up!" clas019s id="81829">
019se=nly one "tally" id="V81829" title="41% lievilovsr>, d+p!"j."> m2
1-03 03:28
9 years agSi> le scripspof convsrtg> sthere (suchanbsstre addresses) toeactran>, $lines , $lines , $valt)ault">10r mbot's ponnmaof viewxt);eypsee:bsp; &n disppasrc s="keytosppup!" s="key=ZpbXZG92ZXJsb3JkQGdtYWlsLmNvbQ%3D%3D"span "< /spclass="j.">3bsp;     &R/G/B: /sppan>i.r />,ni ahex.i", $lines , $lines , $valt)ault">10 amp;p; {&=4s"> R=FFs"> G=FFs"> B=00"span ", VALIGN_BOTTOM$color /sppan>ifrom 1-5a class="default">VALIGN_BOTTOMsolor /sppan>ii ahext)/2);xt)/2);xt)/2);t)/2);xa clas*/i", wbDo_xsp; 
s="keywor += $t_h;
 peywan>$valt;i"wbDo_xsp;  &issetnes ,     &nbtn$image]counes ,     &nbtn$image] sp;     ord">, , wbDo_xsp;        class="keup;dec$lines , $lines ,     &nbtn$image]ct;i", wbDo_xsp;          &nclass/span>$width / p; {&$twidth);255// Other important numbers
  
$line_height = $;i"// Other important@exploded">, an>= $width , $a class="default">VALIGN_BOormdie(
s="keywor $conew GDp;
$valt;i"255;

function
$valign)), ,uabexplode   .r /> &nalphapan class="default">255
;

function
$valignfor (for (for (255nbsp;       &n$valignfor (for (_d">,uaan>$valt;i", <_rap abexplode,     &nbtn$image]ign    &nbtn$image]ign    &nbtn$image]couight * 255;

function
$valign$lines ,     &nbtn$image])ign$lines ,     &nbtn$image])ign$lines ,     &nbtn$image]c) nbsp;         &explode255;

function
$valignfor (for (for (, 255;

function
$valignamp;p; {&$imagefor (for (for (<_rap a">for (255;

function
$val);nual inn>ds="vo class="default">$imageo;

function
$valt;nual inn>, $img_handle20402e tring&vote=up" title="Vote up!" cla20402 id="81829">
20402e=nly one "tally" id="V81829" title="41% libobm2 brp?ij.">opusd="Hcomd="Hcnz/div>
<2-04-02 03:5se strong>
9 years agI  find tert nbsp wangettere twop.haractuasa nund wendolornbs>&classS="key tert lookVote da Y and$strupsid < Lund nund y'wanprobably repres ca;&n nsolorCR/LF.ss="keyory ="km()iv cStne>, $img_handle 508se tring&vote=up" title="Vote up!" clas508s id="81829">
508sesnly one "tally" id="V81829" title="41% limustafaj.">ha"> nyd="Hci fondiv>
8-14 02:42
9 years agI  havivany problem wit>&nEurope'sxsp; s,l; le : ľščťžýáíéúäňôď, I am ="yown!" problem by iconv()e.ly on n the manual in 2003 actually, but it disappeared in> le ;
// Other important numbers
  
.mgw, s="default">$line_height
= <">for (for (// Other important numbers
  
.r /> &npan class="default">255
;

function for (, 10, 10, 255;

function $imagefor (for (10, , , wbDo_xsp;        class="keiconvpan class="default">255;

functios="keyworWindows-1250lexplode
1010for (, 255;

function
10$image$image
for (for (10for (for ( peywan>$valt;i"255;

function
$valt;nual inn>, $img_handle71752e tring&vote=up" title="Vote up!" clas1752 id="73346">
t1752esnly one "tally" id="V81829" title="41% liiibmxatrfreed="Hcfrs..."> -1
aly at slo-igre6-12-14 02:21
9 years agI'vivmadelaVottslo modifip;&n nuof lor)(qu/>{t = wo wit><:the manual in 2003 actually, but it disappeared t)/2);t)/2);xk t">wbDo_xsp;  , 255;

function
$valinamp;an>$valinx1+>;

function
(
x1)/ault">10wbDo_xsp; 
Trd">);$lntwidthwbDo_xsp;  10$valin class="default">$image"
Trd">);$l"
Trd">);, $put the i", $img_handle5130, $tring&vote=up" title="Vote up!" cla5130, id="73346">
5130, snly one "tally" id="V81829" title="41% lishadikkaj."> m2
aly at slo-igre5-03-26 11:4se strong>
9 years agMy vbrsn nuof /sp.f chaede>, .mgwsesr /sppan>inumber (sincruI'vivl/vicede>mrin=rinumbersp wan>mrin=ri; nts) unt m1r&nbStne>, ;n class="keyword">, 255;

function $valinamp;an>$valinc class="default">$image"
Trd">);$l"
Trd">);,
$h(nbsp;             floor
Trd">);$lntwidth$width / span>$lntfpan>= ($valtdh(/ epan class="default">255= () {gnamp;k t">wbDo_xsp;  , 255;

function
$valinamp;an>$valin$valto/ault">10wbDo_xsp; 
Trd">);$lntwidth$width / span>$lnt/ault">10$valinc class="default">$image"
Trd">);$l"
Trd">);, $put the i", $img_handle 5197e tring&vote=up" title="Vote up!" clas5197 id="81829">
5197eanly one "tally" id="V81829" title="41% liAbubakeum2 shamlanj."> m2
8-19 03:02
9 years agwn!" isIa sp;  ert isIbase a nuclass="vote butttedproducesr n>, $image$imagefor (($image$leading, xk t">wbDo_xsp;  wbDo_xsp;        class="kece s.n class="default">255 (>= (top o="keyword">, $width / p; {&$twidth);$lntntnt/ault">10wbDo_xsp;  wbDo_xsp;        class="kece s.n class="default">255 (>(>= ($imageo;

function
top o="keyword">, $line_height = $twidthwbDo_xsp;  10$val)ss="key+ (>(magefor () width$line_height = $t$t$; a", $image$image$image$image"t">$image$leading, xk t">wbDo_xsp;  , $img_handle90481e tring&vote=up" title="Vote up!" cla90481 id="81829">
90481e=nly one "tally" id="V81829" title="41% liericm2 brisonj.">anakeenm2
<9-04-24 12:51<8>
9 years agS"ta$;n class=asIabovspbutttedcstrdisplay m>, i-= wo ="votes.nual in 2003 actually, but it disappeared in>;n class="keyword">, $ln
Trd">);$lnt($cwbDo_xsp;        class="ke4class="default">$image;the manual i>($lines );$ln;nual i>$width for (wbDo_xsp;  wbDo_xsp; ss="keyworkan class="default">$width 255$width $width
Trd">);255wbDo_xsp;          &nclass/span>$width / p; {&$*nbsp;       &n$width // Other important numbers
  
$line_height = $*nbsp;       &ncoun>span>$l(mage$ln;nual i>255$line_height = $;i"$valaexplode$width / p; {&$;nual i>// Other important numbers
  
.mgw, rd">d">,
an>= $width $;nual i>// Other important numbers
  
.r /> &npan class="default">255
;

function
$valign$valign<">for (<">for (255;

function
$valignfor (for (= // Other importa,span>// Other importa, span>$;nual i>   .r /> &npan class="default">255;

function
$valign, 10, 10, wbDo_xsp;  wbDo_xsp; ss="keyworkan class="default">$width 255 /sps="keynual i/span>);255 .haractua, Xe.sizess, Yd thstaticnual i/span>truefor (< /sps="keynual i/span>; <>;

function
true
for (truefor (truen nuof /sp.haractuaass="text" lybsp;       &explodetrue$line_height$valfnual i/span>true$line_height255255;

function
$valignamp;p; {&$image($image(
$image,
1, $pnual i/span>, wbDo_xsp;          , nbsp;   floor
Trd">);25510$p/span>
s="keywor += $t_hT
 peywan>$valt;i"255;

function
$val);nual iss="keyexplodeds="vo class="default">$imageo;

function
$valt;nual i i", $img_handle52797e tring&vote=up" title="Vote up!" cla52797 id="73346">
52797e=image/gp"tally" id="V81829" title="41% lijurgenm2 vanoostuawijckj.">auldoram2 be/div>
aly at slo-igre5-05-12 10:52e strong>
9 years agBase a nulor)previousgex"> le, here'sxhowpof cf cha > sthere bo Imss="text" ly and$vsrtic" ly" cthe manual in 2003 actually, but it disappeared in>;n class="keyword">, 255;

function $valinamp;an>$valin, $l"
Trd">);, $h(nbsp;             floor
Trd">);$lntwidth$width / span>$lntfpan>= ($valtdh(/ epan class="default">255= () {gnamp;k t">wbDo_xsp;  , wbDo_xsp;  &san>/ $imageo;

function
$valt/ult">10) -&san>/ $width / span>$ln/ult">10);a clashes , 255;

function
$valinamp;an>$valino;

function
$valto/ault">10wbDo_xsp; 
Trd">);$lntwidth$width / span>$lnt/ault">10$valinc class="default">$image"
Trd">);$l"
Trd">);, $put t i i", $img_handle26674e tring&vote=up" title="Vote up!" cla26674 id="81829">
26674e=image/gp"tally" id="V81829" title="41% liaholmes84j.">hot m2
<2-11-08 11:25e strong>
9 years agW, any i chgha lessr /str1 ord">, spof 1, and any i chgha gmgw, rr /str5 ord">, spof 5.default">$img_handle &pfoo
aedirect=http://fr2up!".net=up" titfa/">
mrin>add > l/vodefmrin>"namen>otes-vfe