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

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

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

 

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

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

тема: Система мониторинга позиций сайта в поисковых системах
 
 автор: Black_joker   (07.03.2006 в 14:12)   письмо автору
 
 

Добрый день.
Скачал с раздела Downloads скрипт "Система мониторинга позиций сайта в поисковых системах"
поставил на локалку под денвер
не работает определение позиции в Yandex
номер страницы показывает
а номер позиции нет.
Rambler всё нормально
Aport показывает половину html страницы (но это не важно, меня yandex интересует)
Поставил на Хост (sweb) таже фигн...
попытался сам разобраться, но определение позиций в yandex с помощи регулярных выражений, в которых я не разобрался.

Помогите найти ошибку, почему не показывает ?

   
 
 автор: glsv   (07.03.2006 в 17:52)
 
   для: Black_joker   (07.03.2006 в 14:12)
 

Скорее всего, Яндекс, чуть изменил верстку своих страниц и регулярное выражение уже не срабатывает.

   
 
 автор: Black_joker   (08.03.2006 в 00:57)   письмо автору
 
   для: glsv   (07.03.2006 в 17:52)
 

Это понятно.
Только я не могу понять что поменять чтобы работало :(
Нашол несколько функций которые не могу понять.
Объясните пожалуйста.

-------------------
function pattern($typepattern)
{
switch($typepattern)
{
case YANDEX:
return array("<LI value=\d{1,3}>\D*", "[^!]*<\/A>");
break;
}
}
-------------------
function findposition($server, $site, $text, $startpattern, $endpattern)
{
switch($server)
{
case YANDEX:
preg_match_all("/$startpattern.$site.$endpattern/iU",$text,$arr);
preg_match_all("/\d{1,3}>/iU",$arr[0][0],$position);
$numberposition = substr($position[0][0], 0,
strlen($position[0][0]-1));
return $numberposition;
-------------------------

А вот код yandex:

<LI value=4>
  <DIV class=title><A onclick="r(this,'web/pos=4')" tabIndex=5 
  href="http://www.artlebedev.ru/" target=_blank>Студия Артемия 
  Лебедева</A></DIV>
  <DIV class=text><FONT color=#777777 size=-1><B>текст ссылок: 
  </B></FONT>Сведения о студии и ее услугах разработка консалтинг и продвижение 
  корпоративных <B>веб</B> <B>сайтов</B> выработка фирменного стиля промышленный 
  дизайн Информация ... ... студия Артемия Лебедева занимается не только 
  разработкой <B>веб</B> <B>сайтов</B> но и промышленным дизайном... </DIV>
  <DIV class=info><SPAN style="COLOR: #006600">www.artlebedev.ru (13&nbsp;КБ) 
  </SPAN>— найден по ссылке </DIV>
  <DIV class=info><NOBR><A 
  href="http://www.yandex.ru/yandsearch?text=%E2%E5%E1+%F1%E0%E9%F2&amp;pag=u&amp;surl=artlebedev.ru&amp;rpt=rad">Еще 
  с сайта&nbsp;(16)</A></NOBR> &nbsp;·&nbsp; <NOBR>Рубрика: <A 
  onclick="r(this,'web2yaca')" 
  href="http://yaca.yandex.ru/yca/cat/Computers/Internet/Web_Development/Design/">Web-дизайн</A>


где : <LI value=4>
это номер позиции

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

   
 
 автор: cheops   (08.03.2006 в 13:23)   письмо автору
 
   для: Black_joker   (08.03.2006 в 00:57)
 

Посмотрите тему по ссылке http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=2731

   
 
 автор: Black_joker   (08.03.2006 в 17:16)   письмо автору
 
   для: cheops   (08.03.2006 в 13:23)
 

не нашол там ничяего объясняющие мою тему.
к томуже не работают примеры

   
 
 автор: Black_joker   (04.04.2006 в 16:08)   письмо автору
10.5 Кб
 
   для: Black_joker   (07.03.2006 в 14:12)
 

Проблему решил самостоятельно.
Теперь охота его немного доработать.

Цель: скрипт должен обрабатывать не один запрос.(ключевое слово)

Теперь не знаю как сделать чтобы с формы "textarea" шла обработка для каждого запроса который написан с новой строки.

Подскажите пожалуйста, как это сделать.

P.S
рег выражения оказались не такими сложными :)
за 2 дня разобрался.

Исправленный файл прикрепил (мало ли у кого тока ежа проблема)

   
 
 автор: cheops   (05.04.2006 в 23:58)   письмо автору
 
   для: Black_joker   (04.04.2006 в 16:08)
 

Можно разбить содержимое textarea при помощи следующего кода
<?php
  $queryes 
preg_split("#[\r\n]#iU",$textarea);
?>

где $textarea - текст из текстовой области, а $queryes - массив строк.

   
 
 автор: P@Sol   (05.06.2006 в 11:36)   письмо автору
 
   для: Black_joker   (04.04.2006 в 16:08)
 

не работает:) в яндексе вместо 10 номера, выдает мне 1:)))

нашел ошибку:)

строка 250 должна быть такой:

     <?
$numberposition 
substr($position[0][0], 0strlen($position[0][0])-1);

   
Rambler's Top100
вверх

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