PHPで破線を出力するには、imagesetstyleとimagelineで作成します。
imagedashedlineは古い関数なので使うべきではありません。
imagesetstyleだと破線のピクセルや色を細かく指定することができます。
以下は、青色4ピクセルの白色2ピクセルの破線の例と、imagedashedlineの例です。
なぜか片方は表示されません。
<?php
//画像の作成
$img = imagecreatetruecolor(100, 40);
// 破線用
$black = imagecolorallocate($img, 0, 0, 0);
$blue = imagecolorallocate($img, 0, 255, 255);
// 4ピクセル青で、2ピクセル黒
$style = array($blue, $blue ,$blue ,$blue , $black, $black);
// 破線出力
imagesetstyle($img, $style);
imageline($img, 0, 0, 100, 40, IMG_COLOR_STYLED );
// 表示される
imagedashedline($img, 10, 13, 10, 35, $blue);
// 表示されない
imagedashedline($img, 10, 13, 90, 30, $blue);
//画像出力
header("Content-type: image/png");
header("Cache-control: no-cache");
imagepng($img);
//画像の消去(メモリの解放)
imagedestroy($img);
?>
以下、実行例です。
また、背景が黒色なので、以下のように白と青と黄色で線を描画すると、破線というかカラフルな線を描画することができます。
<?php
//画像の作成
$img = imagecreatetruecolor(100, 40);
// 破線用
$white = imagecolorallocate($img, 255, 255, 255);
$blue = imagecolorallocate($img, 0, 255, 255);
$yellow = imagecolorallocate($img, 255, 255, 0);
// 4ピクセル青で、2ピクセル白
$style = array($blue, $blue ,$blue ,$blue , $white, $white,$yellow,$yellow,$yellow);
// 破線出力
imagesetstyle($img, $style);
imageline($img, 0, 0, 100, 40, IMG_COLOR_STYLED );
//画像出力
header("Content-type: image/png");
header("Cache-control: no-cache");
imagepng($img);
//画像の消去(メモリの解放)
imagedestroy($img);
?>
以下、実行例です。