2012-01-24 2 views
0

preg_match_all을 사용하여 아래의 마크 업에서 148.42라는 숫자를 얻으려면 어떻게해야합니까? 그들 모두는 같은 반을 가지고 있습니다, 그래서 나는 그 숫자를 얻는 방법을 모른다.preg_match_all - 도움이 필요합니다

저는 $ usd_kzt와 $ eur_kzt라는 두 개의 변수가 있습니다.이 두 변수에 아래 코드의 숫자 값을 저장해야합니다. 이 같은

<td width="15"><input id="idval7" name="idval" class="idValI" value="5" type="checkbox"></td> <td class="gen7" align="left">&nbsp;1 ДОЛЛАР США</td> 
<td class="gen7" align="center">USD/KZT</td> 
<td class="gen7" align="center">148.42</td> 

<td class="gen7" align="center">EUR/KZT</td> 
<td class="gen7" align="center">200.42</td> 
<td class="gen7" valign="middle" width="10" align="left"> 
<img src="images/whup.gif"></td> 
<td class="gen7" align="center"></td> 

시도 뭔가 : 사전에

preg_match_all('/<td\s+.*?>(.*)<\/td>/is', $data, $matches); 
print_r($matches); // returns nothing 

감사

+0

[그가 오는 조랑말 ...] (http://stackoverflow.com/a/1732454/554546) –

답변

1

이 시도 :

preg_match_all('/<td[^>]*>(.*)<\/td>/', $data, $matches); 

여기 print_r($matches)에서 얻을 수있는 내용 :

Array 
(
    [0] => Array 
     (
      [0] => <td width="15"><input id="idval7" name="idval" class="idValI" value="5" type="checkbox"></td> <td class="gen7" align="left">&nbsp;1 ДОЛЛАР США</td> 
      [1] => <td class="gen7" align="center">USD/KZT</td> 
      [2] => <td class="gen7" align="center">148.42</td> 
      [3] => <td class="gen7" align="center">EUR/KZT</td> 
      [4] => <td class="gen7" align="center">200.42</td> 
      [5] => <td class="gen7" align="center"></td> 
     ) 

    [1] => Array 
     (
      [0] => <input id="idval7" name="idval" class="idValI" value="5" type="checkbox"></td> <td class="gen7" align="left">&nbsp;1 ДОЛЛАР США 
      [1] => USD/KZT 
      [2] => 148.42 
      [3] => EUR/KZT 
      [4] => 200.42 
      [5] => 
     ) 

) 

당신이 볼 수 있듯이, 당신은 데이터를 쉽게 얻을 수 있습니다 :

echo $matches[1][2]; // logs "148.42" 
+0

고마워, 그게 :) – Heihachi

1

당신은 당신이 같은 시도 할 수 번호를 원하는 경우 : 그것은 단지 숫자를 찾습니다

preg_match_all('/(?:>)(\d+\.?\d*)(?:<)/', $str, $matches); 

을 테이블

$matches 다시

Array 
(
    [0] => Array 
     (
      [0] => >148.42< 
      [1] => >200.42< 
     ) 
    [1] => Array 
     (
      [0] => 148.42 
      [1] => 200.42 
     ) 
) 
제공