Php 每个<;的固定字符行数;p>;不使用单字字体,有可能吗?
我需要将一大块文本分割成相同大小的段落,并使用相同数量的字符串行来保持一致,我目前正在使用php使用以下代码进行此操作Php 每个<;的固定字符行数;p>;不使用单字字体,有可能吗?,php,javascript,jquery,wordpress,css,Php,Javascript,Jquery,Wordpress,Css,我需要将一大块文本分割成相同大小的段落,并使用相同数量的字符串行来保持一致,我目前正在使用php使用以下代码进行此操作 function arrangeText(){ if (have_posts()) : while (have_posts()) : the_post(); $content = strtolower(get_the_content());
function arrangeText(){
if (have_posts()) : while (have_posts()) : the_post();
$content = strtolower(get_the_content());
$content = trim(strip_tags($content));
$post_len = strlen($content);
$segmentCont = 1;
$auxOffset = 0;
$auxOffset2 = 0;
$limit = 896;
$limitTotal = 0;
while($limitTotal<$post_len){
if($segmentCont==2) {
$limit = 943;
}
$segmentCont++;
$limitTotal = $limitTotal + $limit;
if($limitTotal<$post_len)
{ $auxOffset = strpos($content," ",$limitTotal);}
else
{ $auxOffset = $post_len;}
$post_segment = trim(substr($content,$auxOffset2,$auxOffset-$auxOffset2));
$auxOffset2 = $auxOffset;
echo_segment($post_segment);
}
endwhile;
endif;
}
函数arrangeText(){
if(have_posts()):while(have_posts()):the_post();
$content=strtolower(获取内容());
$content=修剪(带标签($content));
$post_len=strlen($content);
$SECTIONCONT=1;
$auxOffset=0;
$auxOffset2=0;
$limit=896;
$limitTotal=0;
虽然($limitTotal我认为一个非常好的主意是有一个键的字典,值是字符,大小,然后当你迭代时,而不仅仅是每个字符都算作一个,它们算作“大小”(使用字典快速查找)。但是,如果字符大小不完全等于另一个字符大小的倍数,则这可能不起作用
您对此有何看法?您可以使用此代码测量字符宽度并创建一个“字典”。
您可以调整它以返回相对值(比如w=1
,i=0.5
,这样它会更灵活)
小提琴在这里:
var chars=[“a”、“b”、“c”、“i”、“w”];
风险值宽度=[];
对于(变量i=0;i
也许你真正想要的只是文本对齐:对齐
?@Amber Haha这是我读标题时想到的第一件事,如果它是一个简单的答案,就像我将被释放一样,但是文本对齐:对齐与photoshop版本不同,它会调整最后一行,不管你只有3个字符,我知道这一点这应该是一个简单的方法,我不能认为我正在创建第一个具有动态和水平文本块的站点。是的,这是我在上面说的,但是有没有可能使用这些语言获得任何字符的像素宽度,或者我必须为我不想测试的每个字体族手动创建一个字典我不知道在哪里可以找到这些信息,可能是手动测量每个字符(特定css字体大小)使用photoshop?听起来很痛苦…有什么具体的想法吗?…顺便说一句,谢谢你的回答,伙计,我真的很感激。如果你想用php确定一个字符的宽度,你可以用这个函数。创建一个白色图像或什么的,并在上面画一个黑色的字母。然后用这个函数来确定最右边的黑色像素。这给了我一个想法,但它的方式太复杂了,我会研究它,谢谢。太好了,它可以工作了,从这里我可以想出一些东西,谢谢=)这段代码有一个问题,使用它无法获得空白宽度,我很困惑为什么我的代码不完美,直到我注意到它。因为我在段落上使用了justify,空白宽度不同,所以我必须尝试其他方法,可以测量循环外的空白,所以我我在一个范围内编辑了每个字符,然后我测量了其中的每一个,并且工作得非常完美。我将更新我的问题,稍后发布代码,再次感谢strah。
var chars = ["a", "b", "c", "i", "w"];
var widths = [];
for (var i = 0; i < chars.length; i++)
{
var span = $("<span>").text(chars[i]);
$("body").append(span);
widths.push(span.width());
}
alert(widths);