2012-01-24 11 views
0

preg_match_allを使って、以下のマークアップから数字148.42を取得するにはどうすればよいですか?彼らはすべて同じクラスを持っているので、私は数字を得る方法を知りません。preg_match_all - 援助が必要

私は2つの変数 - $ usd_kztと$ eur_kztを持っています。これらの2つの変数に以下のコードの数字を格納する必要があります。このような何かしようとしました

<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 
     ) 
) 
に戻します