Составление рег. выражения php

196
25 июля 2017, 19:38

Есть HTML разметка:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <span class="btcBalance"><p>N BTC</p></span>
</body>
</html>

Мне нужно получить N, при учете, что N может быть числом с плавающей точкой с неогр. кол-вом знаков после точки, опираясь именно на <span class="btcBalance"

Answer 1
$str = '<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <span class="btcBalance"><p>N BTC</p></span>
</body>
</html>';

preg_match('~<span class="btcBalance"><p>(N|\d+\.?\d+).*</p></span>~i', $str , $a);
echo '<pre>'; var_dump($a[1]); echo '</pre>';
// N
Answer 2

Вариант с XPath :

   $html = '<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <span class="btcBalance"><p>1.2222 BTC</p></span>
    </body>
    </html>';
    $dom = new \DOMDocument;
    $dom->loadHTML($html);
    $finder = new \DomXPath($dom);
    $node = $finder->query("//*[contains(@class, 'btcBalance')]");
    var_dump((float) $node->item(0)->nodeValue);
READ ALSO
mysql запрос средней сложности

mysql запрос средней сложности

есть таблица comments и answers и news

233
Не работает preg_match

Не работает preg_match

Есть строка - string(1600)

160
Привязка названий к числам

Привязка названий к числам

Есть МФО банков и названия банков(где то штук 1000)

177