За последние 24 часа нас посетили 34445 программистов и 1752 робота. Сейчас ищут 979 программистов ...

Разметка списка

Тема в разделе "PHP для новичков", создана пользователем -Vladimir-, 14 дек 2009.

  1. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Имеется список ссылок, по одной на каждой строке. Как его можно обработать, чтобы после каждой третьей ссылки ставился тег <br> ?
     
  2. amen

    amen Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Список ссылок выводится циклом?
     
  3. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    -Vladimir-
    Самый простой вариант

    PHP:
    1. <?php
    2.  
    3. $i = 1;
    4.  
    5. while($links)
    6. {
    7.       echo $links['link'];
    8.  
    9.       if($i%3 == 0)
    10.             echo '<br />';
    11.  
    12. $i++;
    13. }
     
  4. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    admyx

    тогда уж

    <?php
    for($i=0; $links; $i++)
    {}
    ?>
     
  5. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    не работает
     
  6. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    DarkElf
    Да пох, я первое, что пришло в голову накидал.

    -Vladimir-
    Хех. А "список ссылок"-то в чем? В массиве?
     
  7. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    в txt-файле.
     
  8. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    -Vladimir-
    Ну так получай их из файла, забивай в массив и крути его.
    В чем проблема?
    Как прокрутить массив - показано выше.
     
  9. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    PHP:
    1. <?php
    2. $links=file("base.txt");
    3.  
    4. while($links)
    5. {
    6. echo $links['link'];
    7. if($i%3 == 0)
    8. echo '<br>';
    9.  
    10. $i++;
    11. }
    12. ?>
    Генерит бесконечный список.[/code]
     
  10. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    -Vladimir-
    Кусок файла со ссылками дай, покажу, как сделать
     
  11. amen

    amen Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    PHP:
    1.  
    2. <?
    3. if ($f = fopen("text.txt","r"))
    4. echo 'file open';
    5. else echo 'not open';
    6. $i = 1;
    7. while ($links = fgets($f))
    8. {
    9. echo $links;
    10. echo '<br>';
    11. if ($i%3 == 0)
    12. echo '<br>';
    13. $i++;
    14. }
     
  12. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Спасибо!

    PHP:
    1. <?php
    2.  $f = fopen("text.txt","r");
    3.  
    4.  $i = 1;
    5.  while ($links = fgets($f))
    6.  {
    7.  echo $links;
    8.  if ($i%3 == 0)
    9.  echo '<br>';
    10.  $i++;
    11.  }
    12. ?>
    Как весь результат в одну переменную обратить?
     
  13. amen

    amen Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    не понял, это нужно чтоли:

    PHP:
    1. <?php
    2. $f = fopen("text.txt","r");
    3.  
    4. $i = 1;
    5. while ($links = fgets($f))
    6. {
    7. echo $links;
    8. if ($i%3 == 0)
    9. echo '<br>';
    10. $i++;
    11. }
    12. $list = ob_get_contents();
    13. ?>
     
  14. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Да, спасибо!
     
  15. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Как ещё сделать, чтобы обрабатываемый контент поступал не $f = fopen("text.txt","r"); а ввиде переденной?

    То есть,
    $text = "Строка 1
    Строка 2
    Строка 3
    ...";
     
  16. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    implode("\n",file('text.txt'));
     
  17. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Я не то имел ввиду.
    Нужно обработать просто переменную $text, а не файл. Теперь данные в переменной содержатся.
     
  18. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    ну, та конструкция и вернет в переменную ту самую структуру, что ты и просил.
     
  19. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Не пойму нифига.

    Как тогда поставить тег <br> после каждого третьего тега </a> в переменной $text ?
     
  20. amen

    amen Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Блин, -Vladimir-, что вы выдумываете. Откуда $text ещё взялась?

    PHP:
    1.  
    2. <?
    3. $f = fopen("text.txt","r");
    4.  
    5. $i = 1;
    6. while ($links = fgets($f))
    7. {
    8. echo '<br>';
    9. echo $links;
    10. if ($i%3 == 0)
    11. echo '<br>';
    12.  $i++;
    13.  }
    14.  $list = ob_get_contents();
    15.  
    В $list находится всё, что вам нужно.
     
  21. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Теперь хочу по-другому сделать.
    Разметка текста из переменной: после каждого третьего тега </a> поставить тег <br>.
     
  22. amen

    amen Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Нафига?
     
  23. -Vladimir-

    -Vladimir- Активный пользователь

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Вместо предыдущего алгоритма, где нужно было каждую третью строку обрабатывать.
     
  24. amen

    amen Активный пользователь

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Тогда регулярки наверное.
    Но опять-таки - нафига...?