如何在 Smarty 3.1.31 中启用 Php 代码

How to Enable Php code in Smarty 3.1.31

我下载了一个系统,显然它是使用 Smarty 模板引擎创建的。我不熟悉这个模板引擎,我很难实现我想要的。我想在图片上添加文字,我找到了这段代码:

<?php
      //Set the Content Type
      header('Content-type: image/jpeg');

      // Create Image From Existing File
      $jpg_image = imagecreatefromjpeg('sunset.jpg');

      // Allocate A Color For The Text
      $white = imagecolorallocate($jpg_image, 255, 255, 255);

      // Set Path to Font File
      $font_path = 'font.TTF';

      // Set Text to Be Printed On Image
      $text = "This is a sunset!";

      // Print Text On Image
      imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);

      // Send Image to Browser
      imagejpeg($jpg_image);

      // Clear Memory
      imagedestroy($jpg_image);
    ?> 

我在网上搜索了一下,发现 Smarty 不允许 Php TPL 文件中的代码。我尝试使用 {php} //code here {/php} 但它不起作用。有没有办法在 smarty 中启用 php 标签?如果没有,我怎样才能实现我想要的?

我认为更好的方法是在控制器中创建图像,然后将图像编码为 base64 并将其发送到 view/template。

在你的控制器中

$img = 'created image by image function';

/*encode image to base64 and send it to view/template*/
$img = base64_encode($img);

现在在您的视图中使用此渲染图像

<img src="data:image/gif;base64,{ $img }" />