如何解决从mysql数据库获取的整数,并传递到读取为0的PHP数组中
我正在尝试创建一个运行PHP的网站,该网站从MysqL数据库中获取一系列坐标,并创建一个.dxf文件,并通过我在https://www.phpclasses.org/package/7954-PHP-Generate-CAD-files-in-the-AutoCAD-DXF-format.html网上找到的自定义程序绘制了一些线条。
我遇到了一个问题,即使从var_dump中发现变量是整数,但值不是0,我从数据库中获取并传递给PHP代码的变量似乎也被代码评估为“ 0”。我试过将它们转换为浮点数,但也无济于事。
$a = (int)$array["x"];
$b = (int)$array["y"];
$c = (int)$array["z"];
$d = 15;
$shape->addLine(0,$a,"score");
$shape->addLine(0,$b,"score");
$shape->addLine($a,$d,"score");
$ d是导致程序绘制线条的唯一变量,即使var_dump($ a)和var_dump($ d)可能返回同一内容。
cut.PHP:
$id = $_GET['id'];
$sql_query = "SELECT * FROM orders WHERE id ='".$id."'";
$result = MysqLi_query($conn,$sql_query);
$array = MysqLi_fetch_assoc($result);
$a = (int)$array["x"];
$b = (int)$array["y"];
$c = (int)$array["z"];
$d = 15;
$shape = new DXF();
$shape->addLayer("score",DXF_COLOR_RED);
$shape->addLayer("cut",DXF_COLOR_BLACK);
//$shape->addLine(x,y,z,x2,y2,z2,layer);
$shape->addLine(0,"score");
$shape->addLine(0,"score");
$shape->addLine($a,"score");
$shape->addLine(0,"score");
if (isset($_GET['download']))
{
$shape->SaveFile("myFile.dxf");
}
$dxfstring = $shape->getString();
echo "<h2>dxf string:</h2><pre>$dxfstring</pre>";
dxfwriter.PHP:
class DXF {
function DXF() {
$this->strDXF = "";
$this->layers = array();
$this->Shapestring = "";
}
/**
*
* @param string $name
* @param string $color
* @param string $linetype
*/
function addLayer($name = "0",$color = DXF_COLOR_WHITE,$linetype = "CONTINUOUS") {
$tmp = new DXFLayer();
$tmp->name = $name;
$tmp->color = $color;
$tmp->linetype = $linetype;
$this->layers[] = $tmp;
}
/**
*
* @return type
*/
function getString() {
$strDXF = "";
$strDXF .= $this->getHeaderString();
$strDXF .= $this->getBodyString();
return $strDXF;
}
/**
*
* @return string
*/
function getHeaderString() {
$strDXF = "";
$strDXF .= "0\nSECTION\n 2\nHEADER\n 9\n\$ACADVER\n 1\nAC1006\n 0\nENDSEC\n 0\n";
//layers:
$strDXF .= "SECTION\n 2\nTABLES\n 0\nTABLE\n2\n";
$strDXF .= $this->getLayeRSString();
$strDXF .= "ENDTAB\n 0\nENDSEC\n";
return $strDXF;
}
/**
*
* @return string
*/
function getBodyString() {
$strDXF = "";
$strDXF .= "0\nSECTION\n2\nENTITIES\n0\n";
$strDXF .= $this->Shapestring;
$strDXF .= "ENDSEC\n0\nEOF\n";
return $strDXF;
}
/**
*
* @param float $x
* @param float $y
* @param float $z
* @param float $x2
* @param float $y2
* @param float $z2
* @param string $layerName
* @return string
*/
function addLine($x,$y,$z,$x2,$y2,$z2,$layerName = "0") {
$str = "LINE\n" .
"8" . "\n" .
$layerName . "\n" .
"10" . "\n" .
$x . "\n" .
"20" . "\n" .
$y . "\n" .
"30" . "\n" .
$z . "\n" .
"11" . "\n" .
$x2 . "\n" .
"21" . "\n" .
$y2 . "\n" .
"31" . "\n" .
$z2 . "\n0\n";
$this->Shapestring .= $str;
return $str;
}
/**
*
* @param type $filename
*/
function SaveFile($filename) {
while (false !== ob_get_clean()
);
header("Content-Type: image/vnd.dxf");
header("Content-disposition: inline; filename=$filename");
echo $this->getString();
die();
}
}
请帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。