PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (6): [1] 2 3 4 5 6 »   

> Описание: вытащить из xml
vsll
Отправлено: 01 Апреля, 2011 - 19:44:44
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Как вытащить отсюда значение value
http://oops!
прошу прощения кому надо пишите в личку

(Отредактировано автором: 08 Апреля, 2011 - 15:58:07)

 
 Top
Champion Супермодератор
Отправлено: 01 Апреля, 2011 - 19:50:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




preg_match('/<tcy[^>]+value="([^"]*)"/i', $xml_text, $m);
var_dump($m)
 
 Top
vsll
Отправлено: 01 Апреля, 2011 - 19:55:15
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Круто, а что здесь писать $xml_text Это удалённый файл, названия которого у меня нет...
 
 Top
Champion Супермодератор
Отправлено: 01 Апреля, 2011 - 19:58:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Почему названия нет? Ссылка же есть? $xml_text - это его содержимое уже.
Получить текст можно file_get_contents('http://bar-navig...') или курлом. Для начала файл-гет-контентс попробуй, должно получиться.
 
 Top
vsll
Отправлено: 01 Апреля, 2011 - 19:59:53
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




о!, спасибки попробую...
(Добавление)
Идеально работает, и просто для информации, если кроме
PHP:
скопировать код в буфер обмена
  1. preg_match('/<tcy[^>]+value="([^"]*)"/i', file_get_contents('http://blablabla.ru'), $m);

прописать

это позволяет просмотреть весь массив значений, но расшифруйте, пожалуйста, почему массив выводится именно так:
PHP:
скопировать код в буфер обмена
  1. array(2) { [0]=> string(26) " string(4) "7900" }

почему сначала string(26), а потом string(4), где связь?

(тиц идёт вторым значением $m[1], соответственно)

(Отредактировано автором: 08 Апреля, 2011 - 15:59:58)

 
 Top
Champion Супермодератор
Отправлено: 01 Апреля, 2011 - 21:05:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Улыбка Глянь не на то, что браузер показывает, а в исходный html-код страницы)
Нулевой элемент - то, что сматчилось целой регуляркой, а 1й, 2й, 3й... - это то, что засунуто в регулярке в скобки.
 
 Top
vsll
Отправлено: 01 Апреля, 2011 - 21:13:25
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Получается что в скобках выдаётся длина вытащенной строки между <> - 26символов (я подсчитала Улыбка ) - для нулевого значения и тд...
(Добавление)
Что делать???? Если подставить переменную, то не выдаёт результат, хотя тамбшоты нормально работают, вот цикл:
PHP:
скопировать код в буфер обмена
  1. while ($data = dbarray($result)) {
  2.  
  3.                                         bla bla bla
  4.  
  5. echo "<table class='base'>\n<tr>\n";
  6. preg_match("/^(http:\/\/)?([^\/]+)/i", $data['weblink_url'], $host);
  7. echo "<td rowspan='2' class='weblink_c'>\n<div class='thumb'><img src='http://get.thumbshots.ru/?url=".$host[2]."&size=M&v=1' alt=''/></div>\n</td>\n";
  8. echo "<td class='weblink_t'>bla bla bla</td>\n";
  9. preg_match('/<tcy[^>]+value="([^"]*)"/i', file_get_contents('http://blablabla.ru=".$host[0]."&show=1'), $m);
  10. $cy=$m[1];
  11. echo "<td rowspan='2' class='weblink_c'>...bla bla bla...<br /><small>".$cy."</small><br /></td>\n</tr>\n";
  12.                                        
  13.                                bla bla bla
  14.  
  15. }


Походу тут с curl надо мутить...

(Отредактировано автором: 08 Апреля, 2011 - 16:00:36)

 
 Top
Champion Супермодератор
Отправлено: 02 Апреля, 2011 - 08:28:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Vasiliya пишет:
'http://bar-navig.yandex.ru/u?url=".$host[0]."&show=1'
Посмотри внимательно на красные символы.
(Добавление)
А еще. Яндекс может капризно отнестись к частым запросам его страниц, поэтому стоит воспользоваться функцией sleep()
 
 Top
vsll
Отправлено: 02 Апреля, 2011 - 16:41:40
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Да, сделала так 'http://bar-navig.yandex.ru/u?url='.$host[0].'&show=1' и всё заработало
а почему такой странный синтаксис, ведь строка содержит переменную?

Что-то если я делаю sleep, то у меня вся страница дольше грузиться, а не отдельные значения, может я опять что-нибудь не так записала:
PHP:
скопировать код в буфер обмена
  1. preg_match('/<tcy[^>]+value="([^"]*)"/i', file_get_contents('http://blablabla.ru='.$host[0].'&show=1'), $m);
  2. echo "<td rowspan='2' class='weblink_c'>... bla bla bla ...<br />";
  3.           if ($cy=$m[1]) {
  4.                        sleep(1);
  5.                        echo "<small>".$cy."</small><br />";
  6.            }
  7. echo "</td>\n</tr>\n";

(Отредактировано автором: 08 Апреля, 2011 - 16:01:04)

 
 Top
Champion Супермодератор
Отправлено: 02 Апреля, 2011 - 16:54:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Vasiliya пишет:
такой странный синтаксис
Почему странный? 'вот строка' . /*точка - конкатенация*/ $переменная['с индексом'].
Либо "Всякие вещи {$переменная['с индексом']}".
Vasiliya пишет:
у меня вся страница дольше грузиться, а не отдельные значения,
Не. Происходит всё правильно, просто результат выходит только в конце. Буферизация происходит.
 
 Top
vsll
Отправлено: 02 Апреля, 2011 - 16:57:15
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




1сек этого достаточно?, а то если у меня будет не 9 ссылок как сейчас в категории, а 90, то полторы минуты будет грузиться страница?)))) Или сделать навигацию по 10 ссылок на странице...
 
 Top
OrmaJever
Отправлено: 02 Апреля, 2011 - 17:00:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Vasiliya пишет:
Или сделать навигацию по 10 ссылок на странице...

вот этот вариант лутше! А нащёт времени нужно пробовать. Зделай вначале 1с, если за 10 сылок не даст бан или капчу то делай 800мс и снова пробуй.

(Отредактировано автором: 02 Апреля, 2011 - 17:01:08)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
vsll
Отправлено: 02 Апреля, 2011 - 17:04:16
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




OrmaJever пишет:
если за 10 сылок не даст бан или капчу
что-то вы меня запугали вообще, у меня с яндекса приличный поток... Есть ещё какие-нибудь хитрости плюс к этой?
 
 Top
OrmaJever
Отправлено: 02 Апреля, 2011 - 17:07:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Чтот я не понял этого сообщения Растерялся Какие хитрости?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
vsll
Отправлено: 02 Апреля, 2011 - 17:10:32
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




ну ещё как-нибудь запрос к бару обработать, чтоб не так понятно было что это всё с одного ресурса
 
 Top
Страниц (6): [1] 2 3 4 5 6 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB