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]   

> Без описания
ist0mina
Отправлено: 11 Марта, 2014 - 21:38:57
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2014  


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




здравствуйте! изучаю все аттрибуты веб-разработки, в частности программирование, в частности php и регулярные выражения. Пытаюсь применять на практике. столкнулась с неведомым парадоксом. Очень надеюсь, что найдется добрый человек, кто поможет. Написала регулярное выражение, чтобы вытащить из списка ссылок, названия файлов и названия ссылок. почему-то из всего огромного списка ссылок выбирается одна, которая по виду, как я не искала, не нашла, чем отличается от остальных. Пыталась даже ее удалить в надежде, что без нее найдется что-то другое (что само по себе тоже было бы не сильно приятнее). но находится только она и ничего более!
вот код:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $subject = "
  4. <ul>
  5.                         <li><a href=\antivandalnye-rolstavni.html\>Антивандальные рольставни</a></li>
  6.                         <li><a href=\vidy-montazha-ustanovki-rolstaven.html\>Виды монтажа (установки) рольставен</a></li>                          
  7.                         <li><a href=\zamer-dostavka-montazh-garantiya.html\>Замер. Доставка. Монтаж. Гарантия</a></li>
  8.                         <li><a href=\kakim-obrazom-proishodit-upravlenie.html\>Каким образом происходит управление</a></li>
  9.                         <li><a href=\rol_kompl.php\>Комплектующие для рольставней</a></li>
  10.                         <li><a href=\rol_korob.php\>Короб защитный из двух частей с защитной пленкой</a></li>                              
  11.                         <li><a href=\rol_mebel.php\>Мебельные рольставни</a></li>
  12.                         <li><a href=\rol_mehanizmy.php\>Механизмы рольставен</a></li>
  13.                         <li><a href=\rol_mehanich.php\>Механические рольставни</a></li>
  14.                         <li><a href=\rol_napr_shiny.php\>Направляющие шины</a></li>                                
  15.                         <li><a href=\rol_podg_i_zamer.php\>Подготовка проема и замер рольставни</a></li>                                   
  16.                         <li><a href=\rol_prozrachnye_rol.php\>Прозрачные рольставни</a></li>
  17.                         <li><a href=\rol_protivopozar.php\>Противопожарные рольставни</a></li>
  18.                         <li><a href=\rol_profilya.php\>Профиля для рольставней</a></li>
  19.                         <li><a href=\rol_pulty_nero.php\>Пульты дистанционного управления рольставнями от Nero Electronics</a></li>
  20.                         <li><a href=\rol_remont_obsluzivanie.php\>Ремонт и обслуживание рольставен</a></li>
  21.                         <li><a href=\rol_doorhan.php\>Роллеты DoorHan</a></li>
  22.                         <li><a href=\rol_alu.php\>Рольставни Alutech</a></li>
  23.                         <li><a href=\rol_rol.php\>Рольставни и их применение</a></li>                          
  24.                         <li><a href=\rol_avtomaticheskie.php\>Рольставни автоматические: типы и виды</a></li>
  25.                         <li><a href=\rol_dlya_besedok.php\>Рольставни для беседок</a></li>
  26.                         <li><a href=\rol_dlya_garazha.php\>Рольставни для гаража</a></li>
  27.                         <li><a href=\rol_dlya_magazina.php\>Рольставни для магазина</a></li>
  28.                         <li><a href=\rol_dlya_dachi.php\>Рольставни для дачи</a></li>
  29.                         <li><a href=\rol_kak_peregorodka.php\>Рольставни как перегородка</a></li>
  30.                         <li><a href=\rol_na_dveri.php\>Рольставни на двери</a></li>
  31.                         <li><a href=\rol_na_okna.php\>Рольставни на окна</a></li>
  32.                         <li><a href=\rol_na_balkon.php\>Рольставни на балкон</a></li>
  33.                         <li><a href=\rol_s_foto.php\>Рольставни с фотопечатью</a></li>
  34.                         <li><a href=\rol_santeh_rol.php\>Сантехнические рольставни</a></li>
  35.                         <li><a href=\rol_stalnye.php\>Стальные рольставни</a></li>
  36.                         <li><a href=\rol_ustroistvo_rol.php\>Устройство рольставен</a></li>
  37.                         <li><a href=\rol_utepl.php\>Утепленные рольставни</a></li>
  38.                         <li><a href=\sek_chem_uteplit.php\>Чем утеплить гаражные ворота</a></li>
  39.                         <li><a href=\rol_electricheskie.php\>Электрические рольставни</a></li>
  40.                 ";
  41.                 preg_match_all('|=\\\\([^\.]+\.php)\\\\>([^<]+)|',$subject,$matches);
  42.                 print_r($matches);
  43.                
  44.  
  45. ?>
  46.  


на выходе получается:

Array ( [0] => Array ( [0] => =\sek_chem_uteplit.php\>Чем утеплить гаражные ворота ) [1] => Array ( [0] => sek_chem_uteplit.php ) [2] => Array ( [0] => Чем утеплить гаражные ворота ) )


то есть, 2-я ссылка снизу.
найдите, пожалуйста, ошибку у меня! заранее спасибо.
 
 Top
duhon
Отправлено: 12 Марта, 2014 - 11:07:06
Post Id



Гость


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


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




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

Короче поменяйте двойные кавычки на одинарные при объявлении
Цитата:
$subject = "

Тоесть не находит потому что сочетание символов "\r" это перенос строки. Обратите внимание как в вашем примере подсвечивает синтаксис.

З.Ы. Структурированный html парсите специальными средствами а не регуляркой. (это будет плюс в карму професионализма)

(Отредактировано автором: 12 Марта, 2014 - 11:10:12)

 
 Top
esterio
Отправлено: 12 Марта, 2014 - 13:42:28
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




duhon
Практически правильно, тоько это не отменяет того факта, что для Dom-а в PHP где-то 10% сайтов проходят валидацию. Я лично стараюсь же регулярками и все работает. Вот именно в данном случае регулярка неверна.
 
 Top
ist0mina
Отправлено: 12 Марта, 2014 - 14:47:47
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2014  


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




duhon пишет:
не находит потому что сочетание символов "\r" это перенос строки. Обратите внимание как в вашем примере подсвечивает синтаксис.

Спасибо! я когда отправила, уже обратила внимание но не стала удалять или переделывать сообщение Улыбка зато теперь знаю, что поможет смена кавычек Улыбка
duhon пишет:
З.Ы. Структурированный html парсите специальными средствами а не регуляркой. (это будет плюс в карму професионализма)

а это какими, например, если не секрет?
 
 Top
duhon
Отправлено: 12 Марта, 2014 - 15:05:23
Post Id



Гость


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


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




esterio пишет:
duhon
Практически правильно, тоько это не отменяет того факта, что для Dom-а в PHP где-то 10% сайтов проходят валидацию.


имхо, сначала парсинг (инструментами: Nokogiri, Tidy, Dom, SimpleHTML, PhpQuery), а потом недоработанные/частные компоненты превосходно берет на себя регулярка.

З.Ы. Валидные сайты, никогда не встречал Улыбка. Чисто для прикола, проверил страницу гугла и яндекса на валидацию http://validator[dot]w3[dot]org/ - всеравно невалидно.
 
 Top
esterio
Отправлено: 12 Марта, 2014 - 16:04:28
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




duhon
Ради интереса посмотрите код того же phpQuery (кажись SimleHTML также смотрел, но другие точно нет). Там найдете функционал который фиксит HTML для валидности
 
 Top
duhon
Отправлено: 12 Марта, 2014 - 17:22:56
Post Id



Гость


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


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




esterio пишет:
Ради интереса посмотрите код того же phpQuery

код phpQuery я смотрел год назад (помоему мануала было мне не достаточно, пришлось пошурстеть)
esterio пишет:
функционал который фиксит HTML для валидности

и это хорошо.
 
 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