|
|
|
| мб баян, но жопу себе уже разорвал никак ничего не могу сделать :\
$string = '
<tr>
<td bgcolor="#FFFFFF"><b>BYR</b></td>
<td nowrap bgcolor="#FFFFFF">бiлоруський рубль</td>
<td align="center" bgcolor="#FFFFFF">0,0019</td>
<td align="center" bgcolor="#FFFFFF">0,0033</td>
<td align="center" bgcolor="#FFFFFF">0,0031</td>
</tr>
<!-- row -->
<tr>
<td bgcolor="#FFFFFF"><b>USD</b></td>
<td nowrap bgcolor="#FFFFFF">долар США</td>
<td align="center" bgcolor="#FFFFFF">6,8089</td>
<td align="center" bgcolor="#FFFFFF">6,8494</td>
<td align="center" bgcolor="#FFFFFF">6,7418</td>
</tr>
<!-- row -->
<tr>
<td bgcolor="#FFFFFF"><b>RUB</b></td>
<td nowrap bgcolor="#FFFFFF">росiйський рубль</td>
<td align="center" bgcolor="#FFFFFF">0,2364</td>
<td align="center" bgcolor="#FFFFFF">0,2420</td>
<td align="center" bgcolor="#FFFFFF">0,2459</td>
</tr>
<!-- row -->
<tr>
<td bgcolor="#FFFFFF"><b>EUR</b></td>
<td nowrap bgcolor="#FFFFFF">ЄВРО</td>
<td align="center" bgcolor="#FFFFFF">8,7869</td>
<td align="center" bgcolor="#FFFFFF">8,8554</td>
<td align="center" bgcolor="#FFFFFF">8,6969</td>
</tr>
';
нужно дёрнуть в массив 2 выделенных значения..
буду премного благодарен(: | |
|
|
|
|
|
|
|
|
для: sl1p
(28.11.2008 в 08:27)
| | А вы откуда информацию извлекаете? Обычно центробанки стран предоставляют такую информацию в XML-формате - его попроще разбирать, чем разверстанную страницу, дизайн которой может измениться. Или вам именно эти курсы с этой страницы нужны? | |
|
|
|
|
|
|
|
для: cheops
(28.11.2008 в 12:21)
| | дело в том что мне нужен НБУ :(
поэтому вижу выход только перебирать первый пост.. | |
|
|
|
|
|
|
|
для: sl1p
(28.11.2008 в 12:46)
| | хотя нет, вот нашёл xml\rss нбу
http://bank-ua.com/export/currrate.xml
как бы оттуда потянуть?) | |
|
|
|
|
|
|
|
для: sl1p
(28.11.2008 в 12:54)
| |
<pre>
<?php
$t=file_get_contents("http://bank-ua.com/export/currrate.xml");
preg_match_all("#<rate>.+?</rate>#s",$t,$out);
print_r($out);
?>
|
А уж там вытяните из массива, что надо. :) | |
|
|
|
|
|
|
|
для: AcidTrash
(29.11.2008 в 00:26)
| | и как мне оттуда тянуть ?:)
можно составить рег чтобы на выходе получил так, например:
$out[0] = 434 // <code>434</code>
$out[1] = 353 // <rate>353</rate>
$out[2] = 100 // <size>100</size> // чтобы поделить этим калом rate и получить нормальный курс :)
?:) | |
|
|
|
|
|
|
|
для: sl1p
(29.11.2008 в 04:14)
| | тут на вкус и цвет наверное можно по всякому наделать ,)
например как-то так получать значения в массив
<pre><?
$txt = file_get_contents('...........xml');
$reg='#<item>.+?
<code>([^<]+).+?
<char3>([^<]+).+?
<size>([^<]+).+?
<name>([^<]+).+?
<rate>([^<]+).+?
<change>([^<]+)#sx';
preg_match_all($reg, $txt, $out, 2);
print_r($out);
?>
|
можно без /x одной строкой,
а можно сразу делать нужные вычисления функцией, юзая preg_replace_callback() | |
|
|
|
|
|
|
|
для: xx77
(29.11.2008 в 13:26)
| | ко многим:
мне кажется несколько извращенским из XMLа выдергивать данные регуляркой ) | |
|
|
|
|
|
|
|
для: ddhvvn
(29.11.2008 в 14:04)
| | предложите свой вариант:)) | |
|
|
|
|
|
|
|
для: xx77
(29.11.2008 в 13:26)
| | спасибки огромное, оно:)
зы. а можно както подправить немного чтобы выходил сразу массив из значений без вот такой строки:
Array
(
[0] => <code>840</code>
<char3>USD</char3>
<size>100</size>
<name>доларів США</name>
<rate>687.7700
[1] => 840
[2] => 100
[3] => 687.7700
)
| ? | |
|
|
|
|
|
|
|
для: sl1p
(30.11.2008 в 02:18)
| | Мне так кажется что только юзая preg_replace_callback(),
который будет небудет заменять найденноё всёравно на что, на пустую строку ,
но в callback - функции будут записываться данные во внешний массив
, например объявленный там как global $array;
или проводить операции с массивом из preg_match_all() , удалив ненужные елементы .
к сожалению в php не вижу возможности просто отдельно обрабатывать каждое следующее совпадение в цикле,
как например в perl или javascript
только preg_replace, preg_replace_callback
, а не включить в результаты предшевствующего, найденного подмаской (?<=....)
можно только с фиксированной длинной его.
невключить последующее как (?=.....) попроще | |
|
|
|
|
|
|
|
для: sl1p
(29.11.2008 в 04:14)
| | Хм, я по вашему вопросу ответил понятно, но если вы элементарно не можете работать с массивами, то уж извените... | |
|
|
|
|
|
|
|
для: AcidTrash
(30.11.2008 в 20:06)
| | Зачем сорить лишним калом в массиве когда это можно сделать в выражении?
В пхп очень многое можно сделать по другому, но всё таки лучше сделать-то оптимизировано? | |
|
|
|
|
|
|
|
для: sl1p
(04.12.2008 в 13:07)
| | >Зачем сорить лишним калом в массиве когда это можно сделать в выражении?
Это Вы про это?
Array
(
[0] => <code>840</code>
<char3>USD</char3>
<size>100</size>
<name>доларів США</name>
<rate>687.7700
[1] => 840
[2] => 100
[3] => 687.7700
)
|
Если да то сделайте "оптимизированней" и покажите нам!
или лучше выучите рег.выражения, хотя бы фукнцию preg_match, а потом предъявы кидайте. | |
|
|
|
|
|
|
|
для: ddhvvn
(04.12.2008 в 16:42)
| | Я потому и говорю, если укоротили уже как можно, тогда окей - вопросов нет.
А дёрнуть практически всю страницу и просто распихать её по массивам и уже оттуда чтото брать имхо не то.
зы. предъяв никто не кидал, научитесь читать. | |
|
|
|
|
|
|
|
для: sl1p
(04.12.2008 в 17:22)
| | А куда уж более оптимизировано то?
>А дёрнуть практически всю страницу
А что, этот xml много весит? :)
>и просто распихать её по массивам и уже оттуда чтото брать имхо не то
По каким массивам? Массив один.
А как вы дальше хотите использовать, я понятия не имею. | |
|
|
|
|
|
|
|
для: AcidTrash
(04.12.2008 в 21:18)
| | Какая разница сколько он весит?
Зачем раздувать из этого кучу чего-то. Вопрос же не в этом совсем:)
По каким массивам? Массив один.
не надо придераться к словам (:.
Меня то не затрудняет выдерать из массива, просто хотелось бы чтобы код был как можно чище я думаю вы меня поймёте(: всегда приятно знать что твой код максимально ровный:)
А куда уж более оптимизировано то?
Раз это максимум, то я написал что вопросов нет и спорить не буду так как действительно регулярных выражений не знаю.
Это уже тут некоторые начинают предъявлять мне что я кому-то что-то тыкаю (: | |
|
|
|
|
|
|
|
для: sl1p
(04.12.2008 в 22:03)
| | >я думаю вы меня поймёте(: всегда приятно знать что твой код максимально ровный:)
Ну уж в данном случае, он идеально ровный. А из массива нужные rate выбрать раз плюнуть. | |
|
|
|
|
|
|
|
для: AcidTrash
(04.12.2008 в 22:40)
| | ну уже да:)
и давно из этого написал то что надо было.
вобщем глупый флуд мы тут поразводили.
Ещё раз спасибо(: | |
|
|
|