HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Парсинг кода не пашет, у кого какие будут мысли?
  #1  
Старый 21.05.2009, 09:25
ruslant
Познающий
Регистрация: 19.10.2007
Сообщений: 31
С нами: 9769211

Репутация: 4
Post Парсинг кода не пашет, у кого какие будут мысли?

Всем привет.
В общем есть пага на пхп, а в ней между тегами <body></body> выводятся резерв валют. Вот так:
Код:
<form action='index.php' method='post'>
<script language="JavaScript" src="scripts/common.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">           <!--         	var aName = new Array();         	
var aIncCnt = new Array();         	
var aOutCnt = new Array();         	
var aOutLmtValue = new Array();                      

aName[0] = 'PCR_RuPayR';  
aIncCnt[0] = '1.00'; 
aOutCnt[0] = '0.94'; 
aOutLmtValue[0] = '86754.48'; 

aName[1] = 'PCR_WMR';  
aIncCnt[1] = '1.00'; 
aOutCnt[1] = '0.86'; 
aOutLmtValue[1] = '1100000.00'; 

aName[2] = 'PCR_WMZ';  
aIncCnt[2] = '1.00'; 
aOutCnt[2] = '0.027'; 
aOutLmtValue[2] = '39000.00';

-->
</script>
Далее есть парсер этой страницы:

Код:
<? //Парсинг резервов //WMZ, WMR, WME, WMU, WMB, Яндекс.Деньги, RBK Money, Z-Payment  

$file = file_get_contents("тра-лял-ля урл"); 
preg_match ('#aOutLmtValue[2]=([^"]*)#is', 
$file, $m); 
echo $m[1]; 
?>
Извиняюсь за нубский вопрос, что здесь не так?
Как можно вывести значение 39.000 переменной из массива aOutLmtValue[2]?
 
Ответить с цитированием

  #2  
Старый 21.05.2009, 09:55
iron-viper
Участник форума
Регистрация: 13.11.2007
Сообщений: 180
С нами: 9732984

Репутация: 122
По умолчанию

PHP код:
<? //Парсинг резервов //WMZ, WMR, WME, WMU, WMB, Яндекс.Деньги, RBK Money, Z-Payment    

$file file_get_contents("тра-лял-ля урл");  
preg_match ('/aOutLmtValue\\[2[^\'|"]*[\'|"]([^\'|"]*)/'$file$m);  
echo 
$m[1]; 
?>
Как то так. Если я правильно понял выдирать нужно только последний результат... если все то скажи или сам допиши если понимаешь как
 
Ответить с цитированием

  #3  
Старый 21.05.2009, 11:10
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами: 10021597

Репутация: 905


По умолчанию

PHP код:
  preg_match_all ('/aOutLmtValue\[\d+\] = \'([^\']+)\'/'$str$m);
  
print_r ($m[1]); 
 
Ответить с цитированием

  #4  
Старый 21.05.2009, 14:17
ruslant
Познающий
Регистрация: 19.10.2007
Сообщений: 31
С нами: 9769211

Репутация: 4
По умолчанию

Спасибо, ребят за оперативность, все заработало.
 
Ответить с цитированием

  #5  
Старый 23.05.2009, 09:04
ruslant
Познающий
Регистрация: 19.10.2007
Сообщений: 31
С нами: 9769211

Репутация: 4
По умолчанию

Мда... все да не все
Кто поможет от меня 5 WMZ за потраченное время.

Трабл такой:

1) Когда допустим значение [x] = 21 или 121, т.е. не одна цифра, а две или три, то выдает совсем не тот результат.

Кусок исходника с которого нужно парсить инфу:
aName[22] = 'PCR_WMZ';
aIncCnt[22] = '1.00';
aOutCnt[22] = '0.027';
aOutLmtValue[22] = '39000.00';

Вместо 39000.00 в общем вываливает 144000.00 или левые циферки.

Я конечно понимаю, что собака зарыта здесь:

preg_match ('/aOutLmtValue\\[22[^\'|"]*[\'|"]([^\'|"]*)/', $file, $m);

Но честно говоря с регепсами сталкиваюсь в первые и такое количество знаков пунктуации вообще не осиливает мозг.

2) Берем другую переменную, например
aOutCnt[22] = '0.027';
Парсим так я уже понимаю:
preg_match ('/aOutCnt\\[22[^\'|"]*[\'|"]([^\'|"]*)/', $file, $m);
Пытаюсь вывести значение этой переменной, выдает также левые цифры, причем даже когда [x]=2, ну то есть одной цифре.

Кто поможет?

Последний раз редактировалось ruslant; 23.05.2009 в 09:07..
 
Ответить с цитированием

  #6  
Старый 23.05.2009, 09:28
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
С нами: 9510146

Репутация: 1550


По умолчанию

preg_match ("|OutLmtValue[22] = '(.*?)'|is", $file, $m);
и не парь мозг)
 
Ответить с цитированием

  #7  
Старый 23.05.2009, 10:07
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
С нами: 9610769

Репутация: 380
По умолчанию

Цитата:
Сообщение от wildshaman  
preg_match ("|OutLmtValue[22] = '(.*?)'|is", $file, $m);
и не парь мозг)
Мдя,
* - квантификатор, означающий ноль или более вхождений
? - квантификатор, означающий ноль либо одно вхождение, квантификатор жадности
да спецсимволы то слешировать надобно - [].

#aOutLmtValue\[\d+\]\s*=\s*'(.*)';#s
 
Ответить с цитированием

  #8  
Старый 23.05.2009, 10:59
ruslant
Познающий
Регистрация: 19.10.2007
Сообщений: 31
С нами: 9769211

Репутация: 4
По умолчанию

Цитата:
#aOutLmtValue\[\d+\]\s*=\s*'(.*)';#s
Как конкретизировать данные?
d+ выводит массив, а мне необходимо выборочные данные 22, 26, 3 там например.
 
Ответить с цитированием

  #9  
Старый 23.05.2009, 11:01
ruslant
Познающий
Регистрация: 19.10.2007
Сообщений: 31
С нами: 9769211

Репутация: 4
По умолчанию

Цитата:
preg_match ("|OutLmtValue[22] = '(.*?)'|is", $file, $m);
выдает левый резалт, даже со слешами
Думаю РаСо прав насчет квантификаторов.
 
Ответить с цитированием

  #10  
Старый 23.05.2009, 11:04
ruslant
Познающий
Регистрация: 19.10.2007
Сообщений: 31
С нами: 9769211

Репутация: 4
По умолчанию

5 WMZ актуально! Немного, но стимул есть найти решение
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Покупка у кого какие предложения стучим в асю:контакт 6775777 ki1_nder ICQ - Покупка, продажа 0 09.02.2009 15:00



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...