Как добавить в парсинг свой элемент?

<?php 
   $content1 = str_replace("\'$fs\'","\'$fr\'", $content1);
    function parser($p1,$p2,$p3){
        $num1 = strpos($p1,$p2);
            if(!$num1) return 0 ;
        $num2 = substr($p1,$num1);
        return substr($num2,0,strpos($num2,$p3));
    }
    $link = file_get_contents("https://etherscan.io/dapp/0x71ee6E4fD5F2E70eD5e6fBAf853AE3B223564BCa#readContract");
    $start_teg = "<div class='media-body'><strong class='mr-1'>buyPrice:</strong>"; // Начало тегов от которых парсить
    $stop_teg = '</span>' ;
    echo substr(parser($link,$start_teg,$stop_teg),97,-10));

Как мне добавить в этот парсер точку после 1 цифры? Не знаю уже как . Пробовал explode() но не смог разобраться . Надеюсь хоть форумчане помогут !
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro Куратор тега PHP
upd. substr_replace($str, '.', 1, 0); - вставить "." после первого символа строки $str

Ничего не понятно о чём вопрос, но если задача в том чтобы получить значение buyPrice с этой или подобных страниц то вот нормальное решение, а не ужас на substr

<?php
$page = file_get_contents("https://etherscan.io/dapp/0x71ee6E4fD5F2E70eD5e6fBAf853AE3B223564BCa#readContract");

preg_match('!buyPrice:.*?([0-9]+)<!si', $page, $out);
$buyPrice = $out[1] ?? 0;

var_dump($buyPrice); //404778000000000

$buyPriceDot = substr_replace($buyPrice, '.', 1, 0);
var_dump($buyPriceDot); //4.04778000000000
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
04 апр. 2020, в 23:07
30000 руб./за проект
04 апр. 2020, в 23:05
100000 руб./за проект
04 апр. 2020, в 22:57
5000 руб./за проект