我來施塗本的PHP的preg_match:所述.rating-result
跨度標籤之間我應該如何修改這個PHP preg_match現在我添加了一個額外的div圍繞span標籤?
<?php preg_match('!<div class="thumblock ">(.*)</div>!si' , wp_gdsr_render_article_thumbs(0, false, "", 0, "", false) , $n);
$thumbs_number = strip_tags($n[1]); ?>
提取的數目(在這種情況下)(只):
<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
才能使它像以前一樣提取數字?
爲什麼不直接添加span佔位符,或直接找那個?另外你也會意識到,這樣做會比較簡單。 ();();找到(「。thumblock .rating-result」)。text()'[(...)](http://querypath.org/) - 儘管目前還不清楚哪種方法是合適的爲你的情況。 – mario