如何将preg_match_all变量赋给变量

时间:2012-08-11 01:29:26

标签: php variables strip-tags

原谅我,因为我是一名新手程序员。如何将带有第一个字符的结果$ matches(preg_match)值分配给php中的另一个变量($ funding)?你可以在下面看到我的内容:

<?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);
?>

2 个答案:

答案 0 :(得分:0)

我不是百分百肯定,但似乎你正在努力获得目前资金的美元金额?

角色是你要剥离的美元符号吗?

如果是这种情况,为什么不将美元符号添加到组外的正则表达式中,以便不会捕获它。

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

因为$表示正则表达式中的行尾,所以必须首先用斜杠转义它。

答案 1 :(得分:0)

Don't parse HTML with 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