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 » » Вопросы новичков » Помогите с регуляркой

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

1. event - 11 Января, 2013 - 22:29:00 - перейти к сообщению
Привет.
Есть такая строчка:
CODE (html):
скопировать код в буфер обмена
  1. <a href="details.php?id=4446&hit=1"><b>123_text_123</b></a>


Ребят, помогите составить регулярку, чтобы вытаскивало id (4446), и название (123_text_123).

Заранее спасибо. Подмигивание
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $text = '<a href="details.php?id=4446&hit=1"><b>123_text_123</b></a>';
  2.  
  3. preg_match('#<a href="details.php?id=(\d+)&hit=1"><b>(.+?)</b></a>#', $text, $result); 
  4.  
  5. print_r($result);
  6.  


Пробую вот так, но результата ноль, где моя ошибка?
2. spsu - 11 Января, 2013 - 23:09:56 - перейти к сообщению
event пишет:
Привет.
Есть такая строчка:
CODE (html):
скопировать код в буфер обмена
  1. <a href="details.php?id=4446&hit=1"><b>123_text_123</b></a>


Ребят, помогите составить регулярку, чтобы вытаскивало id (4446), и название (123_text_123).

Заранее спасибо. Подмигивание
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $text = '<a href="details.php?id=4446&hit=1"><b>123_text_123</b></a>';
  2.  
  3. preg_match('#<a href="details.php?id=(\d+)&hit=1"><b>(.+?)</b></a>#', $text, $result); 
  4.  
  5. print_r($result);
  6.  

Пробую вот так, но результата ноль, где моя ошибка?

Не экранирован, ?
PHP:
скопировать код в буфер обмена
  1. <a href="details.php\?id=(\d+)&hit=1"><b>(.+?)</b></a>

У меня так заработала.
3. thesameson - 11 Января, 2013 - 23:14:00 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match('/^.*id=([0-9]*).*<b>(.*)<\/b>.*$/', $var, $matches);
4. EuGen - 11 Января, 2013 - 23:17:06 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match('/\<a\s+href\="details\.php\?id\=(\d+)\&hit\=[^\"]+"\>\<b\>(.*?)\<\/b\>\<\/a\>/i', $sData, $rgMatches);
  2. //var_dump($rgMatches);

?
5. event - 12 Января, 2013 - 16:58:08 - перейти к сообщению
Ребят, спасибо !

А как проделать то же самое с этой строкой:
CODE (html):
скопировать код в буфер обмена
  1. <b><a href="details.php?id=3758&hit=1" alt="Игромания №8 [Август 2012]" title="Игромания №8 [Август 2012]">Игромания №8 [Август 2012]</a></b>
, а то я снова пробую не получается. Заранее спасибо !
6. event - 12 Января, 2013 - 19:38:49 - перейти к сообщению
хелп, плиз. Огорчение
7. thesameson - 13 Января, 2013 - 14:42:42 - перейти к сообщению
event пишет:

А как проделать то же самое с этой строкой:
CODE (html):
скопировать код в буфер обмена
  1. <b><a href="details.php?id=3758&hit=1" alt="Игромания №8 [Август 2012]" title="Игромания №8 [Август 2012]">Игромания №8 [Август 2012]</a></b>

id и содержимое ссылки:
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match('/^.*id=([0-9]*).*>(.*)<\/a>.*$/', $var, $matches);

id и title:
PHP:
скопировать код в буфер обмена
  1. preg_match('/^.*id=([0-9]*).*title=\"(.*)\".*$/', $var, $matches);

Тут уж смотрите по ситуации, если все ссылки будут с одинаковыми title, alt, текстом, то разницы нет какой вариант использовать.

 

Powered by ExBB FM 1.0 RC1