用php创建文本图像

时间:2013-03-03 09:03:35

标签: php image imagettftext

我使用以下代码:

<?php
 $im = ImageCreate(350, 70);
 $white = ImageColorAllocate($im, 0xFF,0xFF,0xFF);
 $fontColor = ImageColorAllocate($im, 0xF2,0x67,0x22);
 ImageTTFText ($im, 20, 0, 10, 40, $fontColor, '/home/squareli/public_html/cookingessence.com/fonts/TektonPro-BoldExt.otf', $text); 
 Header('Content-Type: image/png');
 ImagePNG($im);
?>

我想将此代码保存在自己的.php文件中。我希望能够通过我网站上的其他页面访问此文件。我想为每个页面分配$ text不同的变量。这可能吗?

我目前可以使用以下方式通过其他页面访问php代码:

<img src="code-page-name.php">

我的问题是我找不到为$ text分配变量的方法。我能够做到的唯一方法是将名称直接放入上面的代码中或加载特定页面并在URL中添加变量/code-page-name.php?text=Name%On%The%Page

3 个答案:

答案 0 :(得分:0)

你可以通过get发送文本。

code-page-name.php?text=blah

比你可以访问它

$_GET[text]

您在网址中发送的内容可以通过$ _GET进行访问,您可以发送多个变量。例如code-page-name.php?text=blah&color=red&color2=green等。

答案 1 :(得分:0)

是的,使用会话。这将是像验证码。您可以使用$ text作为变量,并将其一次写为图像。

#file1.php
session_start();
$text = $_SESSION['text'];
//draw the image here

#file2.php
session_start();
echo $_SESSION['text'];

答案 2 :(得分:0)

原因$_SESSION不可靠。但这是最好和最简单的解决方案。

代码页-name.php

<?php
session_start();
if(isset($_SESSION["text"])) {
$text = $_SESSION["text"];
}
else {
$text = "Default Text";
}
$im = ImageCreate(350, 70);
$white = ImageColorAllocate($im, 0xFF,0xFF,0xFF);
$fontColor = ImageColorAllocate($im, 0xF2,0x67,0x22);
ImageTTFText ($im, 20, 0, 10, 40, $fontColor, '/home/squareli/public_html/cookingessence.com/fonts/TektonPro-BoldExt.otf', $text);
Header('Content-Type: image/png');
ImagePNG($im);
?>


其它页面name.php

<?php
session_start();
$_SESSION["text"] = "WhatEver";
?>
<img src="code-page-name.php" />

请记住在任何html标记之前放置session_start()函数。