Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

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

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

 

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

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

тема: Извлечение не всех ссылок , а только некоторых !!!
 
 автор: dima2207   (02.03.2007 в 18:56)   письмо автору
 
 

как извлечь не все ссылки а только некоторые с 20 по 150 , я пробовал вот так , но не работает , или все выводит или ничего !!!! помогите исправить ошибки !!!!
$pattern = '#<a href="[^"]+">(.*)</a><BR>#is';
preg_match($pattern, $buffer, $matches);
   for($i = 1; $i < count($matches); $i++)
   {

echo $matches[$i];
}

да и вообще нужно что-бы каждой ссылке соответствала одна ячейка массива !!!!

   
 
 автор: dima2207   (02.03.2007 в 21:11)   письмо автору
 
   для: dima2207   (02.03.2007 в 18:56)
 

Так тоже не катит :
$pattern = '#<a href="[^"]+">(.*)</a><BR>#is';
preg_match($pattern, $buffer, $matches);
 for($i = 0; $i < count($matches[0]); $i++)
  {
    echo $matches[0][$i]."<br>";
  }

Вообще ничего не выводит !!!!!
почему ???

   
 
 автор: Бамси   (02.03.2007 в 21:49)   письмо автору
 
   для: dima2207   (02.03.2007 в 21:11)
 

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


<?php

$start 
20;
$end 150;

$pattern '#<a href="[^"]+">(.*)</a><BR>#is';
preg_match($pattern$buffer$matches);

    for(
$i=$start-1$i<$end-1$i++)
    {
        echo 
$matches[$i];
    }

?>

   
 
 автор: dima2207   (02.03.2007 в 22:19)   письмо автору
 
   для: Бамси   (02.03.2007 в 21:49)
 

выборку прозвожу из следующиго :

&nbsp;&raquo; <a href="http://www.misite.ru/pages/45/4525.shtml">Nick Lachey - I Can`t Hate You Anymore</a><BR>&nbsp;&raquo; <a href="http://www.nisite.ru/pages/67/6746.shtml">Токио - Когда ты плачешь (к/ф Жара)</a><BR>&nbsp;&raquo;

так когда $start >1 ну скажем 2 или 15 , то тогда ничего не выводится !!! Почему ???
хотя ссылок там много, около 150 !!!

   
 
 автор: вит   (03.03.2007 в 17:00)   письмо автору
 
   для: dima2207   (02.03.2007 в 22:19)
 

вместо preg_match надо использовать, preg_match_all

   
 
 автор: dima2207   (03.03.2007 в 19:12)   письмо автору
 
   для: вит   (03.03.2007 в 17:00)
 

Ну это я понял , а подскажите структуру массива $matches[], ну вот когда я пишу :


$pattern = '#<a href="[^"]+">(.*)</a><BR>#is';
preg_match_all($pattern, $buffer,  $matches);
$str = $matches;
  for($i = 5; $i < 20; $i++)  {
     echo $str[$i]; }

или:

echo $str$[0][$i];

То выдает что не найден эллемент масива , хотя он там должен быть !!!

   
 
 автор: Disable   (03.03.2007 в 20:29)   письмо автору
 
   для: dima2207   (03.03.2007 в 19:12)
 


$pattern = '#<a href="[^"]+">(.*)</a><BR>#is'; 
preg_match_all($pattern, $buffer,  $matches); 
$str = $matches[1]; 
  for($i = 5; $i < 20; $i++)  { 
     echo $str[$i]; }

   
 
 автор: dima2207   (03.03.2007 в 20:59)   письмо автору
 
   для: Disable   (03.03.2007 в 20:29)
 

Notice: Undefined offset: 2 in k:\home\localhost\www\grabend.php on line 55

   
 
 автор: Disable   (03.03.2007 в 23:02)   письмо автору
 
   для: dima2207   (03.03.2007 в 20:59)
 


$pattern = '#<a href="[^"]+">(.*)</a><BR>#is';  
preg_match_all($pattern, $buffer,  $matches);  
print_r($matches);
exit;


Возможно, ваша регулярка не срабатывает, проверьте.

   
 
 автор: dima2207   (04.03.2007 в 01:19)   письмо автору
 
   для: Disable   (03.03.2007 в 23:02)
 

нет , регулярка проверенная !!!!!!

   
Rambler's Top100
вверх

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