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

Форум PHP

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

 

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

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

тема: Вывод только 10 ссылок вместо всех
 
 автор: SnooPI   (15.05.2007 в 15:07)   письмо автору
 
 

Здравствуйте..
Вообщем вот код, он выводит все ссылки с сайта...
$search = file_get_contents('url');

                            if(preg_match_all("#<a href=\"(.*).html\">(.*)</a>\r\n\t\t\t#i", $search, $out, PREG_SET_ORDER))
                            {
                                 preg_match("#Ключевые слова: <b><u>(.*)</u></b>#isU", $search, $kls);
                                $send = "===========\r\nПоиск по: ".$kls[1]."\r\n===========\r\n";
                                foreach($out as $row)
                                $send .= $row[2]."\r\n".$row[1].".html\r\n==============================\r\n";
                            } else {
                                $send = "По запросу \"".$msg[1]."\" ничего не найдено";
                            }
echo $send;
так вот, как сделать так, чтобы выводились не все ссылки, а первые 10 ?

   
 
 автор: Mirage   (15.05.2007 в 15:22)   письмо автору
 
   для: SnooPI   (15.05.2007 в 15:07)
 

поставь счетчик например

i=0
foreach($out as $row)
{
  if i<=9 then
  { 
     $send .= $row[2]."\r\n".$row[1].".html\r\n==============================\r\n";
   }
   else
   {
       --выход из цикла--
    }
    i=i+1
}

   
 
 автор: SnooPI   (15.05.2007 в 15:48)   письмо автору
 
   для: Mirage   (15.05.2007 в 15:22)
 

нет, так не получается....ведь пхп сначала считает все, а потом выводит....
А так у меня выходит из цикла и не выводит :(
Другой метод должен быть

   
 
 автор: Trianon   (15.05.2007 в 15:59)   письмо автору
 
   для: SnooPI   (15.05.2007 в 15:48)
 

из цикла выход, а не из функции!

   
 
 автор: SnooPI   (15.05.2007 в 16:09)   письмо автору
 
   для: Trianon   (15.05.2007 в 15:59)
 

Чето я вас не понял........
Как сделать то правильнее?:)

   
 
 автор: Mirage   (15.05.2007 в 16:22)   письмо автору
 
   для: SnooPI   (15.05.2007 в 16:09)
 

вроде не так все сложно
утебя есть цикл
foreach($out as $row)

который в переменную $send - записывает все url - адреса которые нашел с помошью регулярного выражения так или я ошибаюсь?

если да, то значит делаешь как написанно выше и в переменную $send - запишуться первые 10 url адреса, а конец цикла делаешь чтобы зря проходы лишние не делать, хочешь убери его совсем все равно утебя в переменную send - будут находиться первые 10 url

   
 
 автор: SnooPI   (15.05.2007 в 17:51)   письмо автору
 
   для: Mirage   (15.05.2007 в 16:22)
 

Не работает так, как вы говорите..
Есть другие способы??
ГУРУ, вы где?:)

   
 
 автор: Trianon   (15.05.2007 в 17:56)   письмо автору
 
   для: SnooPI   (15.05.2007 в 17:51)
 

Покажите окончательный код, который у Вас не работает.

   
 
 автор: SnooPI   (15.05.2007 в 18:35)   письмо автору
 
   для: Trianon   (15.05.2007 в 17:56)
 

<?php
$search 
file_get_contents('url');

    if(
preg_match_all("#<a href=\"(.*).html\">(.*)</a>\r\n\t\t\t#i"$search$outPREG_SET_ORDER))
    {
         
preg_match("#Ключевые слова: <b><u>(.*)</u></b>#isU"$search$kls);
        
$send "===========\r\nПоиск по: ".$kls[1]."\r\n===========\r\n";
        
$i 0;
        foreach(
$out as $row)
        {
             if(
$i <= 15)
             {
                 
$send .= $row[2]."<br>".$row[1].".html<br>==============================<br>";

            } else {
                 
$send ":((((((((((((((";
            }
            
$i $i 1;

        }

    } else {
        
$send "По запросу \"".$msg[1]."\" ничего не найдено";
    }

    echo 
$send;
?>

так вот делаю, в браузер выводит :(((((((((((((((((((

   
 
 автор: Mirage   (15.05.2007 в 18:43)   письмо автору
 
   для: SnooPI   (15.05.2007 в 18:35)
 

там не должно стоять
$send = ":((((((((((((((";
а должн ,быть оператор - конец цикла, я просто давно на PHP не программировал не помню как правильно ее вызвать вроде - exit;
вы должны это точно знать

   
 
 автор: SnooPI   (15.05.2007 в 19:09)   письмо автору
 
   для: Mirage   (15.05.2007 в 18:43)
 

Ну и толку...вообще ничего не выводит

   
 
 автор: Mirage   (15.05.2007 в 19:21)   письмо автору
 
   для: SnooPI   (15.05.2007 в 19:09)
 

ну не знаю если у тебя точно раньше выводились все сылки, то даже вот такой код должен заработать

<?php
$search 
file_get_contents('url');

    if(
preg_match_all("#<a href=\"(.*).html\">(.*)</a>\r\n\t\t\t#i"$search$outPREG_SET_ORDER))
    {
         
preg_match("#Ключевые слова: <b><u>(.*)</u></b>#isU"$search$kls);
        
$send "===========\r\nПоиск по: ".$kls[1]."\r\n===========\r\n";
        
$i 0;
        foreach(
$out as $row)
        {
             if(
$i <= 15)
             {
                 
$send .= $row[2]."<br>".$row[1].".html<br>==============================<br>";
            }
            
$i $i 1;
        }
    } 
    else 
    {
        
$send "По запросу \"".$msg[1]."\" ничего не найдено";
    }
    echo 
$send;
?> 

   
 
 автор: SnooPI   (15.05.2007 в 22:12)   письмо автору
 
   для: Mirage   (15.05.2007 в 19:21)
 

Нет, не работает...
Mirage, если не знаете точного ответа, то лучше проверяйте сначала у себя где-нибудь...

По теме:Хотелось бы услышать ответа от cheops :)

   
 
 автор: Trianon   (15.05.2007 в 22:16)   письмо автору
 
   для: SnooPI   (15.05.2007 в 22:12)
 


<?php 
$search 
file_get_contents('url'); 

    if(
preg_match_all("#<a href=\"(.*).html\">(.*)</a>\r\n\t\t\t#i"$search$outPREG_SET_ORDER)) 
    { 
         
preg_match("#Ключевые слова: <b><u>(.*)</u></b>#isU"$search$kls); 
        
$send "===========\r\nПоиск по: ".$kls[1]."\r\n===========\r\n"
        
$i 0
        foreach(
$out as $row
        { 
             if(++
$i 15
                 break;
             
$send .= $row[2]."<br>".$row[1].".html<br>==============================<br>\r\n"
        } 

    } else  
        
$send "По запросу \"".$msg[1]."\" ничего не найдено"

    echo 
$send
?>


[поправлено модератором]

   
Rambler's Top100
вверх

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