|
|
|
| еще один вопрос в переменой есть записи такого вида: $586 | 4688 грн
$1104 | 8832 грн
$1104 | 8832 грн
$1104 | 8832 грн
т.е. виде $*** | *** грн
цены самые разные от 15 usd до 2-3 тысяч
нужно значение только в usd т.е. из этого "$586 | 4688 грн" получить это 586.0000 | |
|
|
|
|
|
|
|
для: rafonets
(16.07.2011 в 18:54)
| | Если ничего против регулярных выражений не имеете, то можно начать отталкиваться от следующего скрипта
<?php
$str = '$586 | 4688 грн';
$pattern = "#^\\$(\d+)\s*\|\s*(\d+)\s*грн$#";
preg_match ($pattern, $str, $out);
echo "<pre>";
print_r($out);
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.07.2011 в 19:07)
| | Вернуло пустое значение | |
|
|
|
|
|
|
|
для: rafonets
(16.07.2011 в 19:12)
| | Хм... а если перейти на одиночные кавычки и убрать один экранирующий символ у $, работает или опять пустое значение (тестируете под windows или под unix)?
<?php
$str = '$586 | 4688 грн';
$pattern = '#^\$(\d+)\s*\|\s*(\d+)\s*грн$#';
preg_match ($pattern, $str, $out);
echo "<pre>";
print_r($out);
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.07.2011 в 19:15)
| | Windows Denwer (php) 5.3
значит так работает:
$str = '$586 | 4688 грн';
$pattern = '#^\$(\d+)\s*\|\s*(\d+)\s*грн$#';
preg_match ($pattern, $str, $out);
echo "<pre>";
print_r($out);
echo "</pre>";
а если вместо str поставить мою переименую price уже не работает | |
|
|
|
|
|
|
|
для: rafonets
(16.07.2011 в 19:18)
| | Второй вариант работает так же | |
|
|
|
|
|
|
|
для: rafonets
(16.07.2011 в 19:18)
| | Правильно ли я понимаю, что в переменной $str у вас много таких строк и вам нужно получить массив всех долларовых цен? | |
|
|
|
|
|
|
|
для: cheops
(16.07.2011 в 19:19)
| | trim();
Все заработало) спасибо | |
|
|
|