如何使用PHP在图片上的HTML输入中编写文本

时间:2019-07-04 07:58:17

标签: php image

获得此HTML代码:

<input class="text" name="Chipnummer" type="text" value="adding text" />

我想像这样将其保存在我的照片上

我的php:

$text['adding text'];

imagefttext($image, 60, 0, 650, 270, $red, 'verdana.ttf',['adding text']);

$filename       = 'stamtavle1.png';

但是它不起作用??

我想用$hvalpe_data['navn1']作为名称保存图片。

$filename = $hvalpe_data['navn1'].png;

正在获取文件而不是png

我真的需要你的帮助。

<div class="image">
<img src="image/stamtavle.png" alt="" style=" width:1200;">

     <h2><?=$hvalpe_data['navn1'];?></h2> 
     <h4><input class="text" name="Chipnummer" type="text" value="Chipnummer"></h4>
     <text><input class="text" name="Stambogsnummer" type="text" value="Stambogsnummer"></text>
     <text1><?=$hvalpe_data['hvalp_farve'];?><text1>
     <text2><?=$hvalpe_data['firstname'] . ' ' . $hvalpe_data['lastname'];?><text2>
     <text3><?=$hvalpe_data['adresse'];?></text3>
$POST['chpinummer'];

$hvalpe_data['navn1'];
$hvalpe_data['firstname'] . ' ' . $hvalpe_data['lastname'];
$hvalpe_data['adresse'];

$image = imagecreatefrompng('stamtavle.png');
imagealphablending($image, true);

$black  = imagecolorallocate($image, 150,0, 0);

// imagefttext("Image", "Font Size", "Rotate Text", "Left Position", "Top Position", "Font Color", "Font Name", "Text To Print");

imagefttext($image, 40, 0, 850, 390, $$black, 'verdana.ttf', $POST['chpinummer']);
imagefttext($image, 40, 0, 850, 390, $$black, 'verdana.ttf', $hvalpe_data['firstname'] . ' ' . $hvalpe_data['lastname']);   
imagefttext($image, 40, 0, 850, 440, $$black, 'verdana.ttf', $hvalpe_data['adresse']);
imagefttext($image, 40, 0, 850, 490, $$black, 'verdana.ttf', $hvalpe_data['post']);

1 个答案:

答案 0 :(得分:0)

您的PHP代码有一些语法问题。

首先,用于检索表单数据的PHP超级全局变量应为$_POST$_GET,具体取决于您的<form method="post">method属性是缺失的还是被设置为method="get",您将需要使用$_GET

第二,PHP在访问数组索引时区分大小写,因此,由于您使用的是<input name="Chpinummer">,因此您的PHP必须与表单字段名称大小写相对应。因此,如果表单方法确实为$_POST['Chpinummer'],则可以使用method="post"来检索提交的值。

第三,将$$与PHP变量一起使用将导致该值返回对variable variable的引用。由于您将imagecolorallocate的颜色声明为$black,因此需要使用$black而不是$$black

最后,由于您未在问题中提供示例,因此无法知道什么值声明为$hvalpe_data。因此,为了简洁起见,我删除了对它们的引用,仅关注特定问题。

$image = imagecreatefrompng('stamtavle.png');
imagealphablending($image, true);

$black = imagecolorallocate($image, 150, 0, 0);

imagefttext($image, 40, 0, 850, 390, $black, 'verdana.ttf', $_POST['Chpinummer']);

此外,最佳做法是指定参考文件资源的完整(绝对)路径,即:/full/path/to/file。如果文件资源与PHP脚本位于同一目录中。即:/var/www/public/script.php/var/www/public/stamtavle.png,您应该使用__DIR__ . '/stamtavle.png'。 有关更多详细信息,请参见__DIR__

$image = imagecreatefrompng(__DIR__ . '/stamtavle.png');
imagealphablending($image, true);

$black = imagecolorallocate($image, 150, 0, 0);

imagefttext($image, 40, 0, 850, 390, $black, __DIR__ . '/verdana.ttf', $_POST['Chpinummer']);