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]   

> Без описания
difight
Отправлено: 12 Сентября, 2013 - 17:03:19
Post Id



Посетитель


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


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




Есть задача, есть массив с множеством ссылок, по типу www[dot]site[dot]com или site.com/page/page.php или www[dot]site[dot]com/page1/page2 или sub.site.com и тому подобные.
И есть переменная в которой содержится просто site.com и из этого массива мне нужно выбрать те записи которые равным моей переменной, т.е. с учетом поддменов и внутренних страниц
 
My status
 Top
EuGen Администратор
Отправлено: 12 Сентября, 2013 - 17:42:06
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Sample:
PHP:
скопировать код в буфер обмена
  1. $rgLinks = [
  2.    'www.site.com',
  3.    'some.subdomains.www.site.com?parameter',
  4.    'foo.bar.com?www.site.com',//no match since not in domain
  5.    'www.site.domain.com',
  6.    'wwwsite.com'
  7. ];
  8. $sData   = 'www.site.com';
  9. $rgLinks = array_filter($rgLinks, function($sLink) use ($sData)
  10. {
  11.    return preg_match('/(^|[^\?]+\.)'.preg_quote($sData).'(\?|\.|$|\/)/i', $sLink);
  12. });


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
difight
Отправлено: 20 Сентября, 2013 - 16:19:19
Post Id



Посетитель


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


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




EuGen пишет:
Sample:
PHP:
скопировать код в буфер обмена
  1. $rgLinks = [
  2.    'www.site.com',
  3.    'some.subdomains.www.site.com?parameter',
  4.    'foo.bar.com?www.site.com',//no match since not in domain
  5.    'www.site.domain.com',
  6.    'wwwsite.com'
  7. ];
  8. $sData   = 'www.site.com';
  9. $rgLinks = array_filter($rgLinks, function($sLink) use ($sData)
  10. {
  11.    return preg_match('/(^|[^\?]+\.)'.preg_quote($sData).'(\?|\.|$|\/)/i', $sLink);
  12. });

Ошибку дает на 9 строке, я так понимаю use с версии php 5.3 используется, у меня 5.2.10, как по другому вопрос можно решить ?
 
My status
 Top
difight
Отправлено: 24 Сентября, 2013 - 10:57:52
Post Id



Посетитель


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


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




подскажите пожалуйста, у самого чё-то не получается ничего Недовольство, огорчение
 
My status
 Top
esterio
Отправлено: 24 Сентября, 2013 - 11:13:26
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. function filter($sLink)
  2. {
  3.         return preg_match('/(^|[^\?]+\.)'.preg_quote(sData).'(\?|\.|$|\/)/i', $sLink);
  4. }
  5.  
  6. $rgLinks = array(
  7.    'www.site.com',
  8.    'some.subdomains.www.site.com?parameter',
  9.    'foo.bar.com?www.site.com',//no match since not in domain
  10.    'www.site.domain.com',
  11.    'wwwsite.com'
  12. );
  13. define('sData', 'www.site.com');
  14. $rgLinks = array_filter($rgLinks, 'filter');


как-то так
 
 Top
difight
Отправлено: 24 Сентября, 2013 - 11:49:35
Post Id



Посетитель


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


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




esterio пишет:
PHP:
скопировать код в буфер обмена
  1. function filter($sLink)
  2. {
  3.         return preg_match('/(^|[^\?]+\.)'.preg_quote(sData).'(\?|\.|$|\/)/i', $sLink);
  4. }
  5.  
  6. $rgLinks = array(
  7.    'www.site.com',
  8.    'some.subdomains.www.site.com?parameter',
  9.    'foo.bar.com?www.site.com',//no match since not in domain
  10.    'www.site.domain.com',
  11.    'wwwsite.com'
  12. );
  13. define('sData', 'www.site.com');
  14. $rgLinks = array_filter($rgLinks, 'filter');



как-то так


Неа, так у меня всегда пустой массив на выходе получается Недовольство, огорчение

(Отредактировано автором: 24 Сентября, 2013 - 11:54:08)

 
My status
 Top
difight
Отправлено: 24 Сентября, 2013 - 15:07:15
Post Id



Посетитель


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


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




difight пишет:
esterio пишет:
PHP:
скопировать код в буфер обмена
  1. function filter($sLink)
  2. {
  3.         return preg_match('/(^|[^\?]+\.)'.preg_quote(sData).'(\?|\.|$|\/)/i', $sLink);
  4. }
  5.  
  6. $rgLinks = array(
  7.    'www.site.com',
  8.    'some.subdomains.www.site.com?parameter',
  9.    'foo.bar.com?www.site.com',//no match since not in domain
  10.    'www.site.domain.com',
  11.    'wwwsite.com'
  12. );
  13. define('sData', 'www.site.com');
  14. $rgLinks = array_filter($rgLinks, 'filter');



как-то так


Неа, так у меня всегда пустой массив на выходе получается Недовольство, огорчение

Разобрался сам, если в ссылке присутствует http:// то не будет работать данная конструкция Улыбка
 
My status
 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