使用变量名

时间:2018-04-11 16:29:37

标签: php

我目前正在开发一个Web应用程序,需要一些帮助。

功能如下:连接到mysql数据库的网站。您需要选择两个品牌,然后通过相互关联的动态下拉菜单解决该品牌的产品。基于该选择,发生两个查询从数据库中选择颜色值,在文本字段中显示它们。 通过jquery,PHP和JSON解决。

现在我创建了一个部分,它将显示来自数据库中所选RGB值的颜色图像。 PHP需要使用来自DB的RGB值创建JPG图像并将图像保存在服务器上。

当我在php中实现imagecreate并将路径移交给jquery以将其分配给'“#target”时,我就会遇到问题。

我考虑过两种方式: a)动态生成图像,将其命名为1.jpg并在每个实例中覆盖图像。然后我遇到了浏览器缓存的问题,加载了上一个图像,尽管新图像已经存储在文件夹中。

b)生成新图像并保存它们以获得更好的性能,用RGB值命名(即151 | 50 | 22.jpg)并加载(如果已经存在),如果没有则创建,但是当变量为时我无法保存路径在PHP的imagejpeg()函数中?

我可以保存i)路径元素和字符串'1.jpg'的组合,以及ii)由纯字符串构成的路径,但不是由文本和带有正确图像名称的变量组合而成的路径。 可以通过正确转义变量来完成它???

  

错误是:   警告:imagejpeg(images \ rgb \ 225 | 151 | 169.jpg):无法打开流:第39行的C:\ xampp \ htdocs \ COLOMETRIX \ get_swatch_1a.php中没有此类文件或目录

{“decision”:“images \ rgb \ 225 | 151 | 169.jpg”} 这是Json输出

代码如下:

<?php
$prod1 = $_GET['q'];
include('db_config.php');

// clear variables
$decision='';
$data=''; 

// select dataset  
$result=$db->query("SELECT R, G, B, Get_Col, Selection 
                    FROM farbdatenbank.farbdatenbank 
                    WHERE Name ='".$prod1."' ")
            or die($db->error);
$datensatz=$result->fetch_array(MYSQLI_ASSOC);

// define paths and filename
$file=$datensatz['Get_Col'];
$filename=$file.".jpg"; 
$path_rgb='images'.DIRECTORY_SEPARATOR.'rgb'.DIRECTORY_SEPARATOR.$filename;

if($datensatz['Selection'] == "Excel"){ 
    // get color values
    $R=$datensatz['R'];
    $G=$datensatz['G'];
    $B=$datensatz['B']; 

    //check if file already exists
    if (file_exists($path_rgb) == true) {   
        $decision=$path_rgb;        
    }
    else
    {   
        // create new image 
        $im1=imagecreatetruecolor(150, 70);
        $colim1=imagecolorallocate($im1, $R, $G, $B);
        imagefill($im1,0,0,$colim1);
        $old =  'images'.DIRECTORY_SEPARATOR.'rgb'.DIRECTORY_SEPARATOR.'zzz.jpg';   
        imagejpeg($im1,$path_rgb,100);
        $decision=$path_rgb;    
    } 
}   
Else 
{   
    $decision='images'.DIRECTORY_SEPARATOR.'pics'.DIRECTORY_SEPARATOR.$filename;    
}
// build output array and encode in JSON format 
$data=array("decision"=>$decision);
echo json_encode($data);
mysqli_close($db);  
?>

感谢您的时间

迈克尔

0 个答案:

没有答案