-2

我有这段代码可以在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 来获取要打印到图像上的值,所以当我保存它时,文本不会显示。

任何帮助,谢谢。

4

2 回答 2

1

正如评论中提到的,这是正则表达式问题,而不是文本到图像的问题。

首先,您应该检查 preg_match 与 boolean false 的结果,以查看匹配是否成功。用 var_dump替换模式中的任何空格\s+\s* 至少执行 var_dump 以查看匹配结果。

于 2013-04-26T12:28:58.180 回答
1

使用以下命令直接保存图像:

imagepng($Image, The path to save the file to.)
于 2013-04-26T12:52:50.373 回答