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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как исправить?

 PHP.SU

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


 Страниц (1): [1]   

> Без описания
duk
Отправлено: 06 Августа, 2010 - 17:29:28
Post Id



Частый гость


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


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




Регулярное выражения мое слабое место
Есть такое выражение
preg_match_all('/<td.*?id="[a-z0-9]*?_[0-9]*?_([a-z]*?)".*?>(.*?)<\/td>/i',$flat,$ffs);

Применяется оно к двум строкам:
1.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <tr>
  3. <td class="cat">29</td>
  4. <td class="cat" id="dl2m_5546663_metro" align="center"><br><a target="_blank" href="http://www.cian.ru/cat.php?deal_type=1&street_id=972"><font color=black>улица Мясницкая</font></a>  д.22<br><br>5мин. пешком<br><a href="http://www.cian.ru/cat.php?deal_type=1&metro=32" target="_blank">м.Лубянка</a></td>
  5. <td class="cat" id="dl2m_5546663_room" align="center">комната</td>
  6. <td class="cat" id="dl2m_5546663_kitchen">25</td>
  7. <td class="cat" id="dl2m_5546663_rooms" align="center">22</td>
  8. <td class="cat" id="dl2m_5546663_price"  align="center">25,000р.<br>(837$)<br><br><hr>помесячно</td>
  9. <td class="cat" id="dl2m_5546663_com" align="center"><font color="#00749f">Аг:&nbsp;35%</font><br>Кл:&nbsp;35%</td>
  10. <td class="cat" id="dl2m_5546663_floor">3/4</td>
  11. <td class="cat" id="dl2m_5546663_dopsved" align="center">кух.меб<br>жил.меб<br>тел<br>ТВ<br>стир.машина<br>холодильник<br> <a  title="Сдача комнаты на м. Лубянка, описание и фото" href="http://www.cian.ru/showphoto.php?id_flat=5546663" target="_blank"><font color=blue>ФОТО</font></a></td>
  12. <td class="cat" id="dl2m_5546663_contacts" align="center"><a class=n href='callto://+79268451084'>(926)845-1084</a></td>
  13. <td class="cat" id="dl2m_5546663_comment"><font color="#0000A0">11:33</font> <a href="http://www.cian.ru/cat.php?id_user=31157" target="_blank"><Red Square - Real Estate></a> Без залога. Комнату в коммунальной квартире м.Лубянка, м.Чистые пруды,м.Тургеневская (3-4 мин. пешком до любой станции),15мин.пешком до Красной площади. Рядом с ГУ-ВШЭ. В комнате есть вся мебель (холодильник , микроволновая печь, муз. центр , телевизор,мягкая мебель, , шкаф для одежды,шкаф для посуды,канал интернет-Стрим).В комнате чисто,уютно, окна выходят во двор (Кривоколенный переулок).Слышимость миниальная, тк дом старой постройки. Соседи положительные,не пьющие, без детей. Днем до 20 час. в квартире практически никого не бывает. На кухне своя газовая плита, свой стол, посуда. 2 ванные комнаты, 2 санузла.Имеется стиральная машина. Комнату сдаем на длительный срок положительным и адекватным людям до 2ух человек славянской внешности. комиссия 35 процентов только сегодня. <a href="http://www.cia!
  14. n.ru/onmap.php?obj=flat&id_obj=5546663">на&nbsp;карте</a><br><br><div align="right"><a target="_blank" href="http://www.cian.ru/complaint_add.php?obj=flat&id_obj=5546663"><font color=red>пожаловаться</font></a></div></td>
  15. </tr>
  16.  
  17.  

и 2.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <tr>
  3. <td class="cat">1</td>
  4. <td class="cat" id="dl2m_5546677_metro" align="center"><br><a target="_blank" href="http://www.cian.ru/cat.php?deal_type=1&street_id=708"><font color=black>улица Воронежская</font></a> <br><br>13мин. пешком<br><a href="http://www.cian.ru/cat.php?deal_type=1&metro=21" target="_blank">м.Домодедовская</a></td>
  5. <td class="cat" id="dl2m_5546677_room" align="center">комната</td>
  6. <td class="cat" id="dl2m_5546677_kitchen">8</td>
  7. <td class="cat" id="dl2m_5546677_rooms" align="center">9</td>
  8. <td class="cat" id="dl2m_5546677_price"  align="center">6,000р.<br>(201$)<br><br><hr>помесячно</td>
  9. <td class="cat" id="dl2m_5546677_com" align="center">Кл:&nbsp;100%</td>
  10. <td class="cat" id="dl2m_5546677_floor">6/9</td>
  11. <td class="cat" id="dl2m_5546677_dopsved" align="center">кух.меб<br>жил.меб<br>б/телТВ<br>холодильник<br></td>
  12. <td class="cat" id="dl2m_5546677_contacts" align="center"><a class=n href='callto://+74955093679'>509-3679</a><br><a class=n href='callto://+79262331702'>(926)233-1702</a></td>
  13. <td class="cat" id="dl2m_5546677_comment"><font color="#0000A0">11:36</font> <a href="http://www.cian.ru/cat.php?id_user=1137" target="_blank"><ГРАНТ></a> <b style="color: blue">ПРОСЬБА АГЕНТАМ НЕ ЗВОНИТЬ</b> 1.Ольга. Комната чистая уютная для одной женщины в 3-х комнатной квартире. В соседних двух комнатах проживают три женщины(мама 50-ти лет, дочь 32 и внучка 7 лет). В комнате косметический ремонт, мебель не новая, но в хорошем состоянии, телевизор. Заселят только славянскую работающую женщину. <a href="http://www.cian.ru/onmap.php?obj=flat&id_obj=5546677">на&nbsp;карте</a><br><br><div align="right"><a target="_blank" href="http://www.cian.ru/complaint_add.php?obj=flat&id_obj=5546677"><font color=red>пожаловаться</font></a></div></td>
  14. </tr>
  15.  


в первом случае при этом не получается элемент comment
а во втором нормально

Вопрос: как исправить, чтобы в первом случае он тоже появлялся?
 
 Top
Champion Супермодератор
Отправлено: 06 Августа, 2010 - 17:36:39
Post Id



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


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


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




CODE (regexp):
скопировать код в буфер обмена
  1. /<td[^>]*?id="[a-z0-9]*?_[0-9]*?_([a-z]*?)"[^>]*?>((?:(?!<\/td).)+?)<\/td>/is
 
 Top
duk
Отправлено: 06 Августа, 2010 - 17:43:15
Post Id



Частый гость


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


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




мне кажется, Вы немного где то описАлись
Если нетрудно, можно прямо строку пхп привести в виде
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match_all('/<td.*?id="[a-z0-9]*?_[0-9]*?_([a-z]*?)".*?>(.*?)<\/td>/i',$flat,$ffs);
  3.  

а то ошибку дает.

заранее спасибо

(Отредактировано автором: 06 Августа, 2010 - 17:46:53)

 
 Top
Champion Супермодератор
Отправлено: 06 Августа, 2010 - 18:08:35
Post Id



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


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


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




duk пишет:
мне кажется, Вы немного где то описАлись
Мне кажется, что нет.
duk пишет:
Если нетрудно, можно прямо строку пхп привести в виде
Ну возьми мою строку и вставь себе. Или не догадываешься, куда ее надо вставлять?
(Добавление)
Champion пишет:
а то ошибку дает
Вот за такие фразы и без текста самой ошибки выгонять с форума надо.
 
 Top
duk
Отправлено: 06 Августа, 2010 - 20:03:24
Post Id



Частый гость


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


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




вставил то я верно, но при этом почему то при комментировании предыдущей версии все со страшным грохотом падало...
удалил тогда строку совсем и все заоработало.

Спасибо
 
 Top
Champion Супермодератор
Отправлено: 06 Августа, 2010 - 20:18:45
Post Id



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


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


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




duk пишет:
при комментировании предыдущей версии все со страшным грохотом падало
А, бывает да. Там с строке с регуляркой была последовательность ?>. Когда строка закомментирвоана, этот символ в ней считался как окончание скрипта со всеми вытекающими последствиями. Можно было /* так закомментировать */
 
 Top
JustUserR
Отправлено: 07 Августа, 2010 - 02:15:11
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




duk При выполнении сопоставления по шаблону в вашем регулярном выражении используются две пары запоминающих круглных скобок - причем во второй из хранится текст из ячейки HTML-таблицы который может содержать русские символы в различных кодировках Поэтому когда вы получаете для анализа данный HTML-текст с удаленного web-сервера - то лучше заранее указать требуемую фиксированную кодировку в соответствующем HTTP-заголовке или выполнять явную проверку или перекодирование Если вы используете функции CURL/sockets то это как правило всегда указывается при составлении HTTP-запроса - однако при использовании url-fopen-оболочек процесс происходит автоматически и используемая кодировка может зависеть от параметров по умолчанию для текущего интерпретатора PHP которые связаны с региональными настройками


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB