如果您知道如何开发我真正想做的事情,请告诉我。
我有一个代码可以创建一个像这样的图像(类似于验证码):
/* createImg.php */
class createImg{
public function __construct(){
/*stuff here*/
}
public function showImg(){
/*stuff here*/
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
}
}
$img = new createImg();
$img->showImg();
我创建图像的方法如下:
/* index.php */
echo '<img src="createImg.php" />';
一切正常但我想做的是以下事情,但我不知道如何实现它:
/* index.php */
$img = new createImg();
//and now something like this
echo '<img src="$img->showImg()" />';
我得到的问题是,如果我使用这种方式,由于函数中的标题,我在主屏幕中获得了图像。有什么办法可以做我想做的事吗?
答案 0 :(得分:0)
通常,您无法在HTML页面中间输出原始图像数据,这就是您尝试执行的echo
语句。
机制有限,例如data: URI scheme,但它们有重要的限制需要注意,并且可能不适合大多数情况。
相反,您需要有一些方法来为您的图像生成一个URL,其中包含足够的信息来创建正确的图像。对于一个简单的例子,这可能就像"/img.php?width=100&height=100&colour=red"
。
由于您将用例描述为“类似于CAPTCHA”,因此可能会更复杂,并且可能还需要进行模糊处理,而不是仅仅拼写出URL中的内容。因此,您需要在服务器端存储一些内容;我可以想到几种方法:
"/img.php?unique_id=42"
。