目前仅支持纯文字的长微博生成,而且输入的html只能包含p标签。 过段时间会增加图片以及页眉页脚支持。 /pid-1907.asp /** * @name cwb * php生成长微博 * @param * $str 格式化后的html,仅支持p标签 * $size 字体大小
目前仅支持纯文字的长微博生成,而且输入的html只能包含p标签。
过段时间会增加图片以及页眉页脚支持。
/pid-1907.asp
/**
* @name cwb
* php生成长微博
* @param
* $str 格式化后的html,仅支持p标签
* $size 字体大小
* $font_path字体路径
* $save_path 图片保存路径
* @todo 增加图片支持
* @author leo108 root@
*/
function cwb($str,$size,$font_path,$save_path){
$str = strip_tags($str,'
');
$matches = array();
preg_match_all("/
/", $str, $matches);
foreach ($matches[0] as $key => $value) {
$matches[0][$key] = preg_replace("/
]*>/", "", $matches[0][$key]);
$matches[0][$key] = str_replace('', '', $matches[0][$key]);
$matches[0][$key] = trim($matches[0][$key]);
}
$newrows = array();
foreach ($matches[0] as $key => $str) {
$strlen = mb_strlen($str,'utf-8');
if ($strlen == 0) {
continue;
}
$text = '';
for($i = 0; $i < $strlen; $i++) {
$char = mb_substr($str,$i,1,'utf-8');
$text . $char;
$bbox = imagettfbbox($size,0,$font_path,$text.$char);
if($bbox[2] > 320){
$newrows[] = $text;
$text = $char;
}else{
$text .= $char;
}
}
$newrows[] = $text;
$newrows[] = '';
}
$height = count($newrows) * 16 + 30;
$im = imagecreatetruecolor(360, $height);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefill($im, 0, 0, $white);
imagecopyresampled($im,$thumb_im,20,10,0,0,$pic_width,$pic_height,$pic_width,$pic_height);
$curheight = $pic_height + 30;
foreach ($newrows as $key => $value) {
imagettftext($im , $size, 0, 20, $curheight, $black, $font_path, $value);
$curheight += 16;
}
imagepng($im,$save_path);
}
PHP
发布php中文网,转载请注明出处,感谢您的尊重!