Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Определить ТИЦ ресурса
Форумы портала PHP.SU » PHP » Регулярные выражения » Определить ТИЦ ресурса

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

1. vsll - 01 Апреля, 2011 - 19:44:44 - перейти к сообщению
Как вытащить отсюда значение value
http://oops!
прошу прощения кому надо пишите в личку
2. Champion - 01 Апреля, 2011 - 19:50:48 - перейти к сообщению
preg_match('/<tcy[^>]+value="([^"]*)"/i', $xml_text, $m);
var_dump($m)
3. vsll - 01 Апреля, 2011 - 19:55:15 - перейти к сообщению
Круто, а что здесь писать $xml_text Это удалённый файл, названия которого у меня нет...
4. Champion - 01 Апреля, 2011 - 19:58:02 - перейти к сообщению
Почему названия нет? Ссылка же есть? $xml_text - это его содержимое уже.
Получить текст можно file_get_contents('http://bar-navig...') или курлом. Для начала файл-гет-контентс попробуй, должно получиться.
5. vsll - 01 Апреля, 2011 - 19:59:53 - перейти к сообщению
о!, спасибки попробую...
(Добавление)
Идеально работает, и просто для информации, если кроме
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], соответственно)
6. Champion - 01 Апреля, 2011 - 21:05:02 - перейти к сообщению
Улыбка Глянь не на то, что браузер показывает, а в исходный html-код страницы)
Нулевой элемент - то, что сматчилось целой регуляркой, а 1й, 2й, 3й... - это то, что засунуто в регулярке в скобки.
7. vsll - 01 Апреля, 2011 - 21:13:25 - перейти к сообщению
Получается что в скобках выдаётся длина вытащенной строки между <> - 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 надо мутить...
8. Champion - 02 Апреля, 2011 - 08:28:26 - перейти к сообщению
Vasiliya пишет:
'http://bar-navig.yandex.ru/u?url=".$host[0]."&show=1'
Посмотри внимательно на красные символы.
(Добавление)
А еще. Яндекс может капризно отнестись к частым запросам его страниц, поэтому стоит воспользоваться функцией sleep()
9. vsll - 02 Апреля, 2011 - 16:41:40 - перейти к сообщению
Да, сделала так '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";
10. Champion - 02 Апреля, 2011 - 16:54:14 - перейти к сообщению
Vasiliya пишет:
такой странный синтаксис
Почему странный? 'вот строка' . /*точка - конкатенация*/ $переменная['с индексом'].
Либо "Всякие вещи {$переменная['с индексом']}".
Vasiliya пишет:
у меня вся страница дольше грузиться, а не отдельные значения,
Не. Происходит всё правильно, просто результат выходит только в конце. Буферизация происходит.
11. vsll - 02 Апреля, 2011 - 16:57:15 - перейти к сообщению
1сек этого достаточно?, а то если у меня будет не 9 ссылок как сейчас в категории, а 90, то полторы минуты будет грузиться страница?)))) Или сделать навигацию по 10 ссылок на странице...
12. OrmaJever - 02 Апреля, 2011 - 17:00:42 - перейти к сообщению
Vasiliya пишет:
Или сделать навигацию по 10 ссылок на странице...

вот этот вариант лутше! А нащёт времени нужно пробовать. Зделай вначале 1с, если за 10 сылок не даст бан или капчу то делай 800мс и снова пробуй.
13. vsll - 02 Апреля, 2011 - 17:04:16 - перейти к сообщению
OrmaJever пишет:
если за 10 сылок не даст бан или капчу
что-то вы меня запугали вообще, у меня с яндекса приличный поток... Есть ещё какие-нибудь хитрости плюс к этой?
14. OrmaJever - 02 Апреля, 2011 - 17:07:12 - перейти к сообщению
Чтот я не понял этого сообщения Растерялся Какие хитрости?
15. vsll - 02 Апреля, 2011 - 17:10:32 - перейти к сообщению
ну ещё как-нибудь запрос к бару обработать, чтоб не так понятно было что это всё с одного ресурса

 

Powered by ExBB FM 1.0 RC1