2016-05-20 2 views
-1

Я использую ниже код, чтобы писать текст и изменять цвет, размер, шрифт и добавлять его на изображении.Ошибка При использовании imagettftext() с '&' в тексте

<?php 
header('Content-Type: image/png'); 
$im = imagecreatetruecolor(400, 30); 
$color1 = imagecolorallocate($im, $rgb1[0], $rgb1[1], $rgb1[2]); 

$text = 'Testing...'; // Working fine 
imagettftext($im, 20, 0, 10, 20, $color1 , "arial.ttf", $text); 

$newtext = 'Testing & Demo'; // Not Working 
imagettftext($im, 20, 0, 10, 20, $color1 , "arial.ttf", $newtext); 

imagepng($im); 
imagedestroy($im); 
?> 

Неправильный выход:

test &amp; Demo 

enter image description here

Правильный выход:

test & Demo 

Я попытался htmlentities(),trim(),urlencode(), но не получил от выход сира.

Пожалуйста, помогите мне решить эту проблему. Заранее спасибо!

+0

Попробуйте 'utf8_encode()' – ASR

+0

Пробовал ваше решение ... тот же результат придет. Не работает. – RJParikh

+0

Просто не используйте 'htmlentities()'. Вы не пишете в HTML-документ, поэтому нет необходимости кодировать HTML. – Phil

ответ

0

Единственная проблема, которую я вижу (кроме использования htmlentities() на изображении), заключается в том, что вы фактически передаете строку для цвета вместо целого. Это прекрасно работает для меня ...

<?php 
header('Content-Type: image/png'); 
$im = imagecreatetruecolor(400, 60); 
$colour = imagecolorallocate($im, 255, 255, 255); 
$font = '/path/to/font.ttf'; 

$text = 'Testing...'; 
imagettftext($im, 20, 0, 10, 20, $colour, $font, $text); 

$newtext = 'Testing & Demo'; 
imagettftext($im, 20, 0, 10, 40, $colour, $font, $newtext); 

imagepng($im); 
imagedestroy($im); 

enter image description here

+0

Проверьте измененный код. Я использовал это в своем проекте. Но, к примеру, я забыл добавить его здесь. Я добавил изображение и отредактировал вопрос с правильным цветом, что я получил. – RJParikh

+0

@RuchishParikh Вы по-прежнему используете 'htmlentities()'. Не делай этого. – Phil

+0

Извините, я забыл удалить из кода. Я пробовал без него, но не работал, я применил так много вещей. Спасибо за поддержку. @Фил – RJParikh