<?php

$string = '
<td class="page"> 
<span class="my-tag">value1</span>
<span class="my-tag">value2</span>
<span class="my-tag">value3</span>
<span class="my-tag">value4</span>
</td>';


preg_match('~<td class="page">(.*?)</td>~s', $string, $matches);


// CHECK TO SEE IF WE FOUND A MATCH
if (isset($matches[1])) {

	// GO AHEAD AND DO THE MATCH
	preg_match_all('~<span class="my-tag">(.*?)</span>~s', $string, $span_matches);
	$count = count($span_matches[1]);


	// IF WE FOUND MULTIPLE MATCHES, LIST THEM OUT
	if ($count > 1) {
		print 'COUNT IS: '.$count."\n";
		print_r($span_matches[1]);
	}
	// WE DID NOT MATCH ANY SPAN TAGS
	elseif ($count == 0) {
		print 'COUNT IS ZERO - CRAP';
	}
	// IF WE ONLY FOUND ONE MATCH, WE DON'T NEED TO DO ANYTHING
	else {
		print 'COUNT IS EXACTLY 1 - DO NOTHING';
	}

}
// WE DID NOT FIND AN INITAL MATCH TO BEGIN WITH
else {
	print 'WE DID NOT FIND A MATCH';
}