原谅我,因为我是一名新手程序员。如何将带有第一个字符的结果$ 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);
?>
答案 0 :(得分:0)
我不是百分百肯定,但似乎你正在努力获得目前资金的美元金额?
角色是你要剥离的美元符号吗?
如果是这种情况,为什么不将美元符号添加到组外的正则表达式中,以便不会捕获它。
/<div class=\"stat-number\">\$([^`]*?)<\/div>/
因为$表示正则表达式中的行尾,所以必须首先用斜杠转义它。
答案 1 :(得分:0)
最好的方法是使用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
。