До скоро не съм ползвал тези възможности на PHP, но в момента ще ми бъдат много полезни. Разбира се търсих готови решения в нета, трябваше ми да може да се генерира картинка с динамичен размер според дължината на текста, намерих подобно нещо но не мога да го накарам излиза текста на български (с други по изчистени скриптове успях да се преборя но не можах да сложа динамичния размер).
Имам следния скрипт:
GeSHi (PHP):
$string = "някакъв текст";
$font = 2;
$width = ImageFontWidth
($font)* strlen($string);
$height = ImageFontHeight($font);
$im = ImageCreate($width,$height);
$x=imagesx($im)-$width ;
$y=imagesy($im)-$height;
$background_color = imagecolorallocate ($im, 242, 242, 242); //white background
$text_color = imagecolorallocate ($im, 0, 0,0);//black text
$trans_color = $background_color;//transparent colour
imagecolortransparent($im, $trans_color);
imagestring ($im, $font, $x, $y, $string, $text_color);
header("Content-type: image/gif");
imagegif($im);
ImageDestroy($im);
опитах се да направя следното нещо:
GeSHi (PHP):
$string = "някакъв текст";
$string = iconv('cp1251','UTF-8',$string);
като разбира се променях енкодинга и на самия файл,
пробвах да го излъжа и със
GeSHi (PHP):
$string = $_GET['string']
за да не взема енкодинга от файла (уж) а да идва директно, не помага.
след малко ровичкане в нета, на
http://web-tourist.net/ намерих следната функцика:
GeSHi (PHP):
function cp1251_utf8( $sInput ) // функция за кирилицата иначе ще излизат маймунки
{
$sOutput = "";
for ( $i = 0;
$i < strlen( $sInput );
$i++ ) {
$iAscii = ord( $sInput[$i] );
if ( $iAscii >= 192 && $iAscii <= 255 )
$sOutput .= "&#".( 1040 + ( $iAscii - 192 ) ).";";
else if ( $iAscii == 168 )
$sOutput .= "&#".( 1025 ).";";
else if ( $iAscii == 184 )
$sOutput .= "&#".( 1105 ).";";
else
$sOutput .= $sInput[$i];
}
return $sOutput;
}
$string = $_GET['ime'];
$string = trim(cp1251_utf8
($string));
но и тя не ми помогна, тествах я със изчистен скрип и работи, но при мен излизаха само аски символите
Някакви идеи
?
Или може би алтернативен скрипт?