3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php if(empty($dataFile)) {echo"无数据文件!";} else { $point=6; $data_x=array(); $data_y=array(); $x=array(); $file=$dataFile; $file_hander=fopen($file,"rb"); while(!feof($file_hander)) { $buffer=fgets($file_hander); array_push($x,$buffer); } for($i=0;$i<sizeof($x)-1;$i++) { $data=explode(" ",$x[$i]); array_push($data_x,$data[0]); array_push($data_y,substr($data[1],0,-2)); } /*for($i=0;$i<sizof($data_x);$i++) { echo"[".$data_x[$i].",".$data_y[$i]."]<br>"; }*/ if(sizeof($data_x)==sizeof($data_y))//横纵坐标的个数相同 { header("Content-type:image/png"); $imgWidth=600;$imgHeight=600;$cha=50; $image=imagecreate($imgWidth+80,$imgHeight+80); $colorWhite=imagecolorallocate($image,255,255,255); $raxi=imagecolorallocate($image,255,0,0);//#ABA9A5 $raxi_o=imagecolorallocate($image,0,255,0); $net=imagecolorallocate($image,153,204,255);//#99CCFF $zuobiao=imagecolorallocate($image,255,153,0);//#FF9900 //分别求一下横纵坐标的最大最小值 $max_x=$min_x=$data_x[0]; $min_y=$max_y=$data_y[0]; for($i=1;$i<sizeof($data_x);$i++) { $max_x=$max_x>$data_x[$i]?$max_x:$data_x[$i]; $min_x=$min_x<$data_x[$i]?$min_x:$data_x[$i]; $max_y=$max_y>$data_y[$i]?$max_y:$data_y[$i]; $min_y=$min_y<$data_y[$i]?$min_y:$data_y[$i]; } $num=20; $bit_x=($max_x-$min_x)/$imgWidth;//X轴实际与显示的比例 $step_x=30*$bit_x; $bit_y=($max_y-$min_y)/$imgHeight;//Y轴实际与显示的比例 $step_y=30*$bit_y; /*for($i=0;$i<sizeof($data_x);$i++) echo $data_x[$i]." ";*/ for($i=0;$i<=$num;$i++)//坐标轴 { imageline($image,($i*30),($imgHeight),(30*($i+1)),($imgHeight),$raxi);//注意,只要画出20个方格即可,不需考虑数据 if($i%2==0) imagestring($image,2,($i*30),$imgHeight+5,($min_x+$i*$step_x),$raxi_o);//X轴数据 else imagestring($image,2,($i*30),$imgHeight+5,($min_x+$i*$step_x),$raxi); imageline($image,0,$imgHeight-30*$i,0,$imgHeight-30*($i+1),$raxi); if($i%2==0) imagestring($image,2,10,$imgHeight-30*$i,($min_y+$i*$step_y),$raxi); else imagestring($image,2,10,$imgHeight-30*$i,($min_y+$i*$step_y),$raxi_o); } for($i=1;$i<=20;$i++)//垂线 { imageline($image,30*$i,$imgHeight,30*$i,0,$net); imageline($image,0,$imgHeight-30*$i,$imgWidth,$imgHeight-30*$i,$net); } for($i=0;$i<sizeof($data_x)-1;$i++)//画点与点之间的连线 { imageline($image,($data_x[$i]-$min_x)/$bit_x,($imgHeight-($data_y[$i]-$min_y)/$bit_y),($data_x[$i+1]-$min_x)/$bit_x,($imgHeight-($data_y[$i+1]-$min_y)/$bit_y),$raxi); } for($i=0;$i<sizeof($data_x);$i++) { $show_thing="[".$data_x[$i].",".$data_y[$i]."]"; for($j=0;$j<$point;$j++)//画坐标点 imagearc($image,($data_x[$i]-$min_x)/$bit_x,($imgHeight-($data_y[$i]-$min_y)/$bit_y),$j,$j,0,360,$raxi); imagestring($image,2,($data_x[$i]-$min_x)/$bit_x,($imgHeight-($data_y[$i]-$min_y)/$bit_y),$show_thing,$zuobiao); } imagepng($image); imagedestroy($image); } else echo"横纵坐标的个数不同!请检查一下原文件!"; } ?>
Output for 5.3.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
无数据文件!