|
|
|
|
|
для: cheops
(04.01.2010 в 20:23)
| | В результате работы мы получаем следующий массив:
(
[0] => Array
(
[0] => <rates>
<item><from>Webmoney USD</from><to>Webmoney RUB</to><in>1</in><out>29.9439</out><amount>0</amount></item>
<item><from>Webmoney USD</from><to>Webmoney EUR</to><in>1.44992</in><out>1</out><amount>0</amount></item>
<item><from>Webmoney USD</from><to>Webmoney UAH</to><in>1</in><out>-51.9407939998</out><amount>0</amount></item>
<item><from>Webmoney USD</from><to>Webmoney UZS</to><in>1</in><out>2371.69</out><amount>0</amount></item>
<item><from>Webmoney USD</from><to>Webmoney BYR</to><in>1</in><out>2797.22</out><amount>0</amount></item>
<item><from>Webmoney USD</from><to>Webmoney Gold</to><in>37.233945</in><out>1</out><amount>0</amount></item>
<item><from>Webmoney RUB</from><to>Webmoney USD</to><in>32.258</in><out>1</out><amount>0</amount></item>
<item><from>Webmoney RUB</from><to>Webmoney EUR</to><in>44.7498</in><out>1</out><amount>0</amount></item>
<item><from>Webmoney RUB</from><to>Webmoney UAH</to><in>3.9788</in><out>1</out><amount>0</amount></item>
</rates>
)
[1] => Array
(
[0] => <item><from>Webmoney RUB</from><to>Webmoney UAH</to><in>3.9788</in><out>1</out><amount>0</amount></item>
)
[2] => Array
(
[0] => Webmoney RUB
)
[3] => Array
(
[0] => Webmoney UAH
)
[4] => Array
(
[0] => 3.9788
)
[5] => Array
(
[0] => 1
)
[6] => Array
(
[0] => 0
)
)
В нём только раскрывается значение первой строки, а нужно всех.
Что делать? | |
|
|
|
|
|
|
|
для: pavluxa09
(04.01.2010 в 19:12)
| | После проверки вместо
<?php
if(preg_match($pattern, $text)) echo "Это XML-файл";
?>
|
Подставляйте
<?php
preg_match_all($pattern, $text, $out);
?>
|
$out - будет содержать многомерный массив, элементами которого будут выступать фрагменты, соответствующие круглым скобкам регулярного выражения. | |
|
|
|
|
|
|
|
для: pavluxa09
(04.01.2010 в 18:35)
| | Пожалуйста, помогите извлечь с каждого типа таблицы значения. | |
|
|
|
|
|
|
|
для: cheops
(04.01.2010 в 14:43)
| | Большое спасибо. То что я хотел. Чуть попоже проверю и скажу результат! | |
|
|
|
|
|
|
|
для: pavluxa09
(04.01.2010 в 10:10)
| | 3. Можно отталкиваться от следующего скрипта
<?php
$text = "WebMoney USD -> WebMoney RUR: rate=0.0333960065055, reserve=0
WMZ -> WMR: rate=1.44143, reserve=0
0001 -> 002: rate=0.0191799420155, reserve=0";
$pattern = "#(.*?)->(.*?):[\s]*rate=[\d.]+,[\s]*reserve=[\d.]*#is";
if(preg_match($pattern, $text)) echo "Это TXT2-файл";
else echo "Это не TXT2-файл";
?>
|
| |
|
|
|
|
|
|
|
для: pavluxa09
(04.01.2010 в 10:10)
| | 4. Можно отталкиваться от следующего скрипта
<?php
$text = "1,2,0.0333960065055,0;
1,3,1.44143,0;
1,20,0.0191799420155,0;
1,19 ,0.000420841767704,0;
1,18,0.000356120283187,0;
1,21,37.233945,0;
2,1,32.4672,0;
2,3,44.6664,0;
2,20,3.98371,0;";
$pattern = "#([\d\s]*?),([\d\s]*?),([\d.]*?),([\d.]*?);#is";
if(preg_match($pattern, $text)) echo "Это TXT3-файл";
else echo "Это не TXT3-файл";
?>
|
| |
|
|
|
|
|
|
|
для: pavluxa09
(04.01.2010 в 10:10)
| | 2. Можно отталкиваться от следующего скрипта
<?php
$text = "Webmoney USD;Webmoney RUB;1;23.628812;10000.23
WMZ;WMR;1;23.628812;10000.23
001;002;1;23.628812;10000.23";
$pattern = "#(.*?);(.*?);([\d.]*?);([\d.]*?);([\d.]*?)([\s]+|$)#is";
if(preg_match($pattern, $text)) echo "Это CSV-файл";
else echo "Это не CSV-файл";
?>
|
| |
|
|
|
|
|
|
|
для: pavluxa09
(04.01.2010 в 10:10)
| | 1. Можно отталкиваться от следующего скрипта
<?php
$text = "<rates>
<item>
<from>Webmoney USD</from>
<to>Webmoney RUB</to>
<in>1</in>
<out>23.628812</out>
<amount>10000.23</amount>
</item>
<item>
<from>WMZ</from>
<to>WMR</to>
<in>1</in>
<out>23.628812</out>
<amount>10000.23</amount>
</item>
<item>
<from>001</from>
<to>002</to>
<in>1</in>
<out>23.628812</out>
<amount>10000.23</amount>
</item>
</rates>";
$pattern = "|<rates>([\s]*<item>".
"[\s]*<from>(.*?)</from>[\s]*".
"[\s]*<to>(.*?)</to>[\s]*".
"[\s]*<in>([\d.]*?)</in>[\s]*".
"[\s]*<out>([\d.]*?)</out>[\s]*".
"[\s]*<amount>([\d.]*?)</amount>[\s]*".
"</item>[\s]*)+</rates>|is";
if(preg_match($pattern, $text)) echo "Это XML-файл";
else echo "Это не XML-файл";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(03.01.2010 в 20:43)
| | 1. Если это таблица XML тогда в ней должны открываться и закрываться теги: <rates> <item> <from> <to> <in> <out> <amount>, а также между тегами <in> <out> <amount> должно быть число (целое или дробное через точку). Таблица XML может иметь свой вид следующий:
<rates>
<item>
<from>Webmoney USD</from>
<to>Webmoney RUB</to>
<in>1</in>
<out>23.628812</out>
<amount>10000.23</amount>
</item>
<item>
<from>WMZ</from>
<to>WMR</to>
<in>1</in>
<out>23.628812</out>
<amount>10000.23</amount>
</item>
<item>
<from>001</from>
<to>002</to>
<in>1</in>
<out>23.628812</out>
<amount>10000.23</amount>
</item>
</rates>
|
2. Если это таблица типа TXT, тогда в ней обязательно должно быть в каждой строке следующая структура *;*;*;*;*
Место трёх последних звёздачек может быть число (целое или дробное через точку). А место двух первых символы(до 12 возможно с пробелом). Таблица такого типа может иметь следующий вид:
Webmoney USD;Webmoney RUB;1;23.628812;10000.23
WMZ;WMR;1;23.628812;10000.23
001;002;1;23.628812;10000.23
|
3. Если таблица типа TXT2, тогда в ней должно быть в каждой строке следующая структура: Валюта -> Валюта2: rate=число, reserve=число
Там числа целые или дробные с точкой.
Таблица такого типа может иметь следующий вид:
WebMoney USD -> WebMoney RUR: rate=0.0333960065055, reserve=0
WMZ -> WMR: rate=1.44143, reserve=0
0001 -> 002: rate=0.0191799420155, reserve=0
|
4. Если таблицы типа TXT3, тогда в ней в каждой строке должна быть следующая структура: *,*,*,*;
Где место первых двух звёздочек может быть валюта, а место последних двух число (целое или дробное через точку). Пример такой таблицы:
1,2,0.0333960065055,0;
1,3,1.44143,0;
1,20,0.0191799420155,0;
1,19 ,0.000420841767704,0;
1,18,0.000356120283187,0;
1,21,37.233945,0;
2,1,32.4672,0;
2,3,44.6664,0;
2,20,3.98371,0;
|
| |
|
|
|
|
|
|
|
для: pavluxa09
(03.01.2010 в 20:04)
| | Тогда необходимо уточнение критериев проверки. | |
|
|
|
|