Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужен скрипт, совсем несложные вроде
 
 автор: Na100yashyi   (09.05.2007 в 14:45)   письмо автору
 
 

Нужно считать из этого данные например в массив, чтобы потом их все можно было прочитать.
Вот, что из себя представляет страницы, с которой нужно их выдергивать.
Сайт не чужой и за то, что с него скрипт будет читать инфу, ничего не будет, просто другого способа нет :(

<?xml version="1.0" encoding="windows-1251" ?> 
- <QUOTES>
  <TICKER SYMBOL="GBPUSD" BID="1.9916" ASK="1.9920" DIR="0" /> 
  <TICKER SYMBOL="USDJPY" BID="119.94" ASK="119.97" DIR="0" /> 
  <TICKER SYMBOL="EURUSD" BID="1.3536" ASK="1.3539" DIR="1" /> 
  <TICKER SYMBOL="NZDJPY" BID="88.19" ASK="88.34" DIR="0" /> 
  </QUOTES>


Нужно вытащить, начиная с 3-ей строки: GBPUSD, то что в BID: 1.9916, и то что в ASK: 1.9920 и также со 2-ой и третьей, все.
Помогите вопрос жизни и смерти :)

   
 
 автор: Бамси   (09.05.2007 в 16:05)   письмо автору
 
   для: Na100yashyi   (09.05.2007 в 14:45)
 

Вам надо регулярным это вырезать? Есть же функции для работы с xml.

   
 
 автор: Na100yashyi   (09.05.2007 в 17:27)   письмо автору
 
   для: Бамси   (09.05.2007 в 16:05)
 

Если есть функции для работы с XML то можно и с помощью них, в конце мне будет нужно что нибудь вроде массива содержащего все эти данные, то есть:
price [0][1]=EURUSD
price [0][2]=1.3600
price [0][3]=1.3602
price [1][1]=GBPUSD
price [1][2]=2.0000
price [1][3]=2.0003
...
Если при помощи XML не получится, то думаю можно и с регулярными выражениями.
Но поймите, с ними я почти не сталкивался и как что делать не понимаю, так что посты подобные расположенному выше, от Sfinksа мне не помогут, так как я попросту не знаю куда мне эту строку воткнуть и как она может работать для извлечения ккаждой строки, а не только первой. Вообщем чайник ...

   
 
 автор: Sfinks   (09.05.2007 в 16:33)   письмо автору
 
   для: Na100yashyi   (09.05.2007 в 14:45)
 

<?
  preg_match_all
("#<ticker symbol=\"([^\"]+)\" bid=\"([^\"]+)\" ask=\"([^\"]+)\"#i",$s,$out);
?>

   
 
 автор: Na100yashyi   (09.05.2007 в 17:28)   письмо автору
 
   для: Sfinks   (09.05.2007 в 16:33)
 

Если есть функции для работы с XML то можно и с помощью них, в конце мне будет нужно что нибудь вроде массива содержащего все эти данные, то есть:
price [0][1]=EURUSD
price [0][2]=1.3600
price [0][3]=1.3602
price [1][1]=GBPUSD
price [1][2]=2.0000
price [1][3]=2.0003
...
Если при помощи XML не получится, то думаю можно и с регулярными выражениями.
Но поймите, с ними я почти не сталкивался и как что делать не понимаю, так что посты подобные расположенному выше, от Sfinksа мне не помогут, так как я попросту не знаю куда мне эту строку воткнуть и как она может работать для извлечения ккаждой строки, а не только первой. Вообщем чайник ...

   
 
 автор: Sfinks   (09.05.2007 в 17:49)   письмо автору
 
   для: Na100yashyi   (09.05.2007 в 17:28)
 

Именно это я тебе и написал.
$s - это переменная, содержащая страницу, из которой ты хочешь все выдернуть, а
$out - это массив, который ты хочешь получить. Только он скомпонован в виде:

$out[1][0]=EURUSD
$out[1][1]=GBPUSD
$out[2][0]=1.3600
$out[2][1]=2.0000
$out[3][0]=1.3602
$out[3][1]=2.0003

если тебе нужен массив в том порядке, как ты написал, то функция выглядит так:

  preg_match_all("#<ticker symbol=\"([^\"]+)\" bid=\"([^\"]+)\" ask=\"([^\"]+)\"#i",$s,$out,PREG_SET_ORDER);

PS: Эту функцию нужно вставить сразу после того, как в переменную $s заносится код страницы.

   
 
 автор: Na100yashyi   (09.05.2007 в 18:21)   письмо автору
 
   для: Sfinks   (09.05.2007 в 17:49)
 

Благодарю Sfinks
я разобрался, все получилось так, как нужно, еще раз большое спасибо.

Если все же кто-то, разбирается в XML, то подскажите, можно ли для того чтобы выдернуть эти значения, попросту вызывать их как переменные в XML, мне почему то очень кажется что можно :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования