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: 试试这个,如果explode适用于字符串,它应该可以工作:

$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 回答