1

私は初心者のプログラマーであるため、私を許してください。結果の $matches (preg_match) 値を、最初の文字を削除して、php の別の変数 ($funded) に割り当てるにはどうすればよいですか? あなたは私が以下に持っているものを見ることができます:

<?php
$content = file_get_contents("https://join.app.net");

//echo $content;

preg_match_all ("/<div class=\"stat-number\">([^`]*?)<\/div>/", $content, $matches);
//testing the array $matches

//echo sprintf('<pre>%s</pre>', print_r($matches, true));

$funded = $matches[0][1];

echo substr($funded, 1);
?>
4

2 に答える 2

0

100%確信はありませんが、現在の資金の金額を取得しようとしているようです。

そして、文字はあなたが取り除きたいドル記号ですか?

その場合は、グループ外の正規表現にドル記号を追加して、キャプチャされないようにしてください。

/<div class=\"stat-number\">\$([^`]*?)<\/div>/

$は正規表現の行末を意味するため、最初にスラッシュでエスケープする必要があります。

于 2012-08-11T01:43:07.780 に答える
0

HTML を RegEx で解析しないでください

最良の方法は、PHP DOMを使用することです。

<?php
$handle = curl_init('https://join.app.net');
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$raw = curl_exec($handle);
curl_close($handle);
$doc = new DOMDocument();
$doc->loadHTML($raw);
$elems = $doc->getElementsByTagName('div');
foreach($elems as $item) {
    if($item->getAttribute('class') == 'stat-number')
        if(strpos($item->textContent, '$') !== false) $funded = $item->textContent;
}
// Remove $ sign and ,
$funded = preg_replace('/[^0-9]/', '', $funded);
echo $funded;
?>

これ380950は投稿時に返されました。

于 2012-08-11T03:15:18.063 に答える