|
|
|
| есть переменная с содержанием
'0.000000">buy 0.19sell 0.29 '+
|
подскажите как обработать это содержимое чтоб получилось
0.19::0.29 | |
|
|
|
|
|
|
|
для: Webmaster-X
(17.01.2007 в 12:04)
| | Вот так, например:
<?
$text = "'0.000000\">buy 0.19sell 0.29 '+";
preg_match("#buy ([\d\.]+)sell ([\d\.]+) #", $text, $regs);
echo $regs[1].'::'.$regs[2];
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(17.01.2007 в 12:37)
| | хм, странно сомо по себе выражение работает, а в комплексе работать не хочет
<?
$array = file("http://www.uaportal.com/cgi_bin/getblock.cgi?url=currency");
$count = count($array);
for ($i=0; $i<$count; $i++)
{
$rt = strip_tags($array[$i]);
if (!ereg("sell", $rt))
{
unset($rt);
}
if ($rt != null)
{
preg_match("#buy ([\d\.]+)sell ([\d\.]+) #", $rt, $regs);
$array_kurs[] = $regs[1].'::'.$regs[2];
}
}
$array_kurs = join("<br />",$array_kurs);
print $array_kurs ;
?>
|
подскажите в чём может быть причина | |
|
|
|
|
|
|
|
для: Webmaster-X
(17.01.2007 в 14:09)
| | На самом деле buy и sell от цены разделяются не пробелом, а
То есть нужно либо заменить нбсп на пробел, либо немного изменить рег. выражение
В принципе, Ваш код можно немного упростить:
<?
$text = file_get_contents("http://www.uaportal.com/cgi_bin/getblock.cgi?url=currency");
$rt = strip_tags($text);
$rt = str_replace(" ", " ", $rt);
preg_match_all("#buy ([\d\.]+)sell ([\d\.]+) #", $rt, $regs);
for ($i = 0; $i < count($regs[1]); $i++)
$array_kurs[] = $regs[1][$i].'::'.$regs[2][$i];
$array_kurs = join("<br />",$array_kurs);
print $array_kurs;
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(17.01.2007 в 15:22)
| | Вроде всё понятно и правельно, цыкл проходит 3 раза, а появляются повторения результат
0.19::0.19
6.53::6.63
5.06::5.09
0.19::0.19
6.53::6.63
5.06::5.09
если вместо count($regs[1])
поставить ноль тогда всё правильно срабатывает
или заменить
<?
$array_kurs = join("<br />",$array_kurs);
?>
|
на
<?
$array_kurs = join("<br />",array_unique($array_kurs));
?>
|
но это былобы наверное неправильно.
чё не правильно?
==================
ага разобрался | |
|
|
|