Я использовал это php preg_match :
<?php preg_match( '!<div class="thumblock ">(.*)</div>!si' , wp_gdsr_render_article_thumbs(0, false, "", 0, "", false) , $n );
$thumbs_number = strip_tags( $n[1] ); ?>
для извлечения числа (в данном случае 2 ) между тегами .rating-result
span (только):
<div class="thumblock">
<span class="rating-result">2</span>
<div class="ratingtext">
<div id="gdsr_thumb_124_a_up" class="gdt-size-20 gdthumb gdup">
<div class="gdt-starrating"></div>
</div>
<div id="gdsr_thumb_124_a_dw" class="gdt-size-20 gdthumb gddw">
<div class="gdt-starrating"></div>
</div>
</div>
<div class="raterclear"></div>
</div>
Теперь я изменил вывод (я добавил дополнительный div, который окружает теги .rating-result
span):
<div class="thumblock">
<div id="gdsr_thumb_text_137_a" class="gdt-size-20 voted inactive gdthumbtext">
<span class="rating-result">2</span>
</div>
<div class="ratingtext">
<div id="gdsr_thumb_137_a_up" class="gdt-size-20 gdthumb gdup">
<div class="gdt-starrating"></div>
</div>
<div id="gdsr_thumb_137_a_dw" class="gdt-size-20 gdthumb gddw">
<div class="gdt-starrating"></div>
</div>
</div>
<div class="raterclear"></div>
</div>
Выполнение var_dump
до первых $thumbs_number
выходов: string(2) "+1"
Выполнение var_dump
для второго $thumbs_number
выходов: string(2) "+1"
Но функция, в которой я использую переменную $thumbs_number
, больше не работает (get_rating_class();
помещается в класс div для добавления класса в соответствии с количеством превью):
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);
}
Что абсолютно одинаково, но похоже
Как мне изменить preg_match
, чтобы он извлек это число, как это делало раньше?