我正在使用以下preg_match
:
preg_match( '!<div class="thumblock ">(.*)</div>!si' , wp_gdsr_render_article_thumbs(0, false, "", 0, "", false) , $n );
$thumbs_string = strip_tags( $n[1] );
提取span标记之间的数字:
<div class="thumblock ">
<span class="rating-result">
<div id="gdsr_thumb_text_12_a" class="gdt-size-20 voted inactive gdthumbtext">+1</div>
</span>
<div class="ratingtext ">
<div class="raterclear"></div>
</div>
(在上面的例子中,结果是一个字符串:“+ 1”)
所以我尝试将其转换为整数:
$thumbs_number = (int)$thumbs_string;
在此函数中使用:
function get_rating_class($thumbs_number) {
if ($thumbs_number < 0) return ' bad';
if ($thumbs_number < 2) return ' average';
if ($thumbs_number < 4) return ' good';
return ' excellent';
}
function rating_class($thumbs_number) {
echo get_rating_class($thumbs_number);
}
输出div类:
<div class="topic-like-count<?php rating_class($thumbs_number); ?>">
我甚至做过var_dump()
:
<h2><?php var_dump($thumbs_string); ?></h2>
<h2><?php var_dump($thumbs_number); ?></h2>
结果是:
分别为 string(2) "+1"
和int(1)
(我直接在此处复制/粘贴)。
但是没有输出div类。
有任何解决此问题的建议吗?
修改
该类确实在HTML源代码中输出,但它没有任何效果(并且我的样式表没有被缓存)。我有另一个版本的函数,它没有在span标签周围添加额外的div,而且一个可以工作,但不幸的是我需要那个div。
答案 0 :(得分:1)
如果在HTML中显示类名,那么PHP代码就可以了。样式表可能就是问题所在。
答案 1 :(得分:0)
当然..在致电echo
之前添加rating_class($thumbs_number);
:
<div class="topic-like-count<?php echo rating_class($thumbs_number); ?>">
答案 2 :(得分:0)
为什么使用仅用于回声的额外功能?以下应该可以正常工作。
<div class="topic-like-count<?=get_rating_class($thumbs_number);?>">