私はカールして以下を取得します:
echo $contents
これは私にこれを与えます:
<td class="fomeB1" >Balance: $ 1.02</td>
$13.32 fee
$15.22 fee 2
1.02 を取得するにはどうすればよいですか - $ の後と前のすべて</td>
これをphp経由で取り除き、お金を変数$balanceに入れたい....
これについて私が得ることができるどんな種類の助けも大歓迎です!
やり方が悪いのかもしれませんが…
$pieces = explode("$ ", $contents);
$pieces = explode("</td>", $pieces[1]);
$balance = $pieces[0];
または、正規表現を使用できます。このようなもの:
\$\s\d+.{1}\d+
ここで正規表現をテストできます: RegExpPal
preg_match() を使用して、正規表現を使用して残高を解析できます。 preg_match()
基本的に、文字列ができました
$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
はい、あなたが望むものを正確に使用できます
preg_match("/(?<=Balance: ).*?(?=<)/", "<td class='fomeB1'>Balance: $ 1.02</td>", $match);
print_r(str_replace("$"," ",$match));
// Prints:
Array
(
[0] => 1.02
)
$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