我有这个代码工作,它将文本放在PHP中的图像上,但是当我将生成的图像保存到我的计算机上时,只显示图像而文本没有。
以下是我正在使用的代码:
<?php
header("Content-type: image/png");
$imgPath = 'template4.png';
$image = imagecreatefrompng($imgPath);
$color = imagecolorallocate($image, 255, 0, 0);
error_reporting(0);
if(isset($_POST['submit']))
{
$GT = $_POST['GT'];
$Gamertag = preg_replace('/ /', "+", $GT);
$content = file_get_contents("http://www.ea.com/uk/football/profile/{$Gamertag}/360");
if ($content == false) {
echo "Cant find this Gamertag";
exit();
}
// Titles Won
preg_match('#<div class="stat">
Titles Won <span>([0-9\.]*)<span class="sprite13 goalImage cup"></span></span>#', $content, $titleswon);
}
$string = $titleswon[1];
$fontSize = 3;
$x = 5;
$y = 5;
imagestring($image, $fontSize, $x, $y, $string, $color);
imagepng($image);
?>
如果我只是将$ string设置为$ string ='hello';单词hello在保存时会保留,但因为我使用preg_match来获取值以打印到图像上,当我保存它时文本不会显示。
任何帮助,谢谢。
答案 0 :(得分:1)
正如评论中所提到的,这是正则表达式问题,而不是文字到图像问题。
首先,你应该检查preg_match对boolean false的结果,看看匹配是否成功。
使用\s+
或\s*
替换模式中的任何空格
至少做var_dump以查看匹配的结果。
答案 1 :(得分:1)
使用以下方式直接保存图像:
imagepng($Image, The path to save the file to.)