$pedit =<<<head
<div class="item"><div var="i_name_10">white gold</div> <div
var="i_price_10">$5.99</div></div>
head;
echo preg_replace("/(<[^>]+var=\"i_price_10\"[^>]*>)(.*?)(<\/[^>]+?
>\s*)/","$1".'100'."$3",$pedit);
Result:
<div class="item"><div var="i_name_10">white gold</div> 00</div>
Expected
<div class="item"><div var="i_name_10">white gold</div><div
var="i_name_10">100</div> </div>
That seem to happen with any number even when i try casting it as string.