0

私はカールして以下を取得します:

echo $contents

これは私にこれを与えます:

 <td class="fomeB1" >Balance: $ 1.02</td>

$13.32 fee
$15.22 fee 2

1.02 を取得するにはどうすればよいですか - $ の後と前のすべて</td>

これをphp経由で取り除き、お金を変数$balanceに入れたい....

これについて私が得ることができるどんな種類の助けも大歓迎です!

4

4 に答える 4

1

やり方が悪いのかもしれませんが…

$pieces = explode("$ ", $contents);
$pieces = explode("</td>", $pieces[1]);
$balance = $pieces[0];

または、正規表現を使用できます。このようなもの:

\$\s\d+.{1}\d+

ここで正規表現をテストできます: RegExpPal

preg_match() を使用して、正規表現を使用して残高を解析できます。 preg_match()

于 2013-04-11T04:57:49.740 に答える
1

基本的に、文字列ができました

$str = '<td class="fomeB1" >Balance: $ 1.02</td>';

私は正しいですか?

今これを試してください:

$txt = getTextBetweenTags($str, "td");
echo $txt;//Balance: $ 1.02

次に、爆発を使用します。

$pieces = explode($txt,' $ ');
echo $pieces[0]; //Balance:
echo $pieces[1]; //1.02

UPDATE: これを試してみてください。爆発が文字列に対して機能する場合は機能するはずです:

$pieces = explode("Balance: $ ", $str);
$pieces = explode("</td>", $pieces[1]);
$balance = $pieces[0]; //1.02
于 2013-04-11T04:58:43.603 に答える
1

はい、あなたが望むものを正確に使用できます

preg_match("/(?<=Balance: ).*?(?=<)/", "<td class='fomeB1'>Balance: $ 1.02</td>", $match);
print_r(str_replace("$"," ",$match));

// Prints:
Array
(
    [0] =>   1.02
)
于 2013-04-11T04:59:10.450 に答える
1
$str = '<td class="fomeB1" >Balance: $ 1.02</td>';  
$r1 = preg_replace('/.*?\$[ ](.*?)<.*/', '\1',  $str); //match between after first '$ ' ,and first '<' ;
echo $r1; //1.02

また

$r2= preg_replace('/^<td class="fomeB1" >Balance\: \$ (.*?)<\/td>$/', '\1',  $str); //match between after <td class="fomeB1" >Balance: $    and </td>

echo $r2; //1.02

または更新

$str = ' <td class="fomeB1" >Balance: $ 1.02</td>

$13.32 fee
$15.22 fee 2';  

$r1 = preg_replace('/.*?\$[ ](.*?)<.*/s', '\1',  $str); //match between after first '$ ' ,and first '<' ;
echo $r1.'<br>'; //1.02
于 2013-04-11T05:05:20.760 に答える