Преобразование строки в число (стандартные способы типа settype не катят)

Статус
В этой теме нельзя размещать новые ответы.

notzevs

Создатель
Регистрация
27 Сен 2009
Сообщения
30
Реакции
5
Народ, подскажите как преобразовать строку в число. стандартные методы типа указания в скобках не помогают. settype тоже.
Строка превращается в 0, если поменять со sting в числовой формат.
до преобразования "1.234" после "0"
вот код, (простой грабера)
PHP:
<?php
$page = file_get_contents("http://www.rbc.ua/rus/nbu");
preg_match('/долари США<\/td>(.+)<\/td>/isU', $page, $temp);
$res = preg_replace('/<center>/isU', '', $temp[1]);
$res = preg_replace('/<\/center>/isU', '', $res);
echo $res;
?>
 
А ты уверен, что первый preg_match правильно работает? Попробуй вывести его результат ($temp)
 
PHP:
$page = file_get_contents("http://www.rbc.ua/rus/nbu");
preg_match('/долари США<\/td>(.+)<\/td>/isU', $page, $temp);
$res = strip_tags($temp[1]);
//тест
echo floatval($res)*3;
 
Может не совсем правильно понял ТС, но может это решение подойдет?
PHP:
    function to_num($str)
    {
        preg_match_all("(\d+)", $str, $m);
        $n = '';
        foreach ($m[0] as $v) {
            $n .= (string )$v;
        }
        return (int)$n;
    }
 
Может не совсем правильно понял ТС, но может это решение подойдет?
PHP:
    function to_num($str)
    {
        preg_match_all("(\d+)", $str, $m);
        $n = '';
        foreach ($m[0] as $v) {
            $n .= (string )$v;
        }
        return (int)$n;
    }
\d - это десятичное число, а у ТС дробное, т.е. там есть ещё и точка

PHP:
$page = file_get_contents("http://www.rbc.ua/rus/nbu");

if ( preg_match( '#<td[^>]*>долари США</td>\s*<td[^>]*><center>([\d\.]+)</center></td>#is', $page, $matches ) )
{
   echo $matches[1]; // resultat
}

Не проверял, но должно работать
 
Видимо preg_replace делает всю заморочку.
Спасибо, всем великим и всемогущим)))
Скрипты Abliganto и polyetilen отлично работают и идеально подходят в данной ситуации.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху