За последние 24 часа нас посетили 16668 программистов и 1643 робота. Сейчас ищут 977 программистов ...

Проблемы с "подробнее..."

Тема в разделе "PHP для новичков", создана пользователем ShamahN, 6 апр 2008.

Статус темы:
Закрыта.
  1. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Кто подскажет. Вот есть такая тема, типа новости. Принято, когда выводишь список новостей, выводлиь первые несколько сотен символов, а потом что-нить вроде кнопочки "подробнее..." Так вот в чем проблема. Как бы так сделать чтобы на место обрыва не попал какой-нить хтмл тэг или, не дай бог, картинка. уж очень будет красиво:
    Текст текст тексттексттексттексттексттексттексттексттексттекст <img src='/data/i.... (подробнее...)
    :) так вот, помогите, плиз, если можно с регулярными выражениями.. как бы так сделать, чтобы удалить все теги хтмл, теги картинок вместе с их содержими, и может я что еще забыл.
    Заранее спасибо
     
  2. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Может быть обычного strip_tags достаточно? :)
     
  3. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    сек... щас посмотрю что он делает :)
     
  4. Clone

    Clone Guest

    strip'ит tag'и, как ни странно ;)
     
  5. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    просто чудная функция! но все равно надо регулярные выражения примутить...
    Тогда такой вопрос великим гуру :):
    Есть определенный сайт, с определенной совершенно тематикой. Есть куски контента (так будем называть слова и выражения) которые надо будет по всему контенту поменять (типа "самый лучший сайти пхп" поменять на <a href='http://php.ru'> "самый лучший сайти пхп"</a> или непечатные символы перехода строки поменять на <br>). Вот. И набор таких кусков контента известен и может слегка изменяться. Так вот меня осенило. Так почему же не оставлять все как есть, а уже сгенерированный контент не подвергнуть такой своеобразной обработке...
    если кто может написать кусочек из 2х, например, замен, напишите, ну а если нет, подскажите какой функцией пользоваться. Что-нить типа preg_replace()?
     
  6. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    PHP:
    1. <?php
    2. $output = 'Куча букаф.';
    3. $output = nl2br($output); // \r\n (перевод с языка Гур: перенос строки) -> <br />
    4. $output = str_replace(
    5.     array( // что меняем
    6.         'самый лучший сайти пхп',
    7.         'самые голые бабы'
    8.     ),
    9.     array( // на что меняем
    10.         '<a href="http://php.ru">"самый лучший сайти пхп"</a>'
    11.         '<a href="http://golyebabyeveryday.ru">"самые голые бабы"</a>'
    12.     ),
    13.     $output
    14. );
    15. ?>
     
  7. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Круто! Спасибо :)
    Не научиться мне работать с регулярными выражениями :)
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    ShamahN
    Порой удобнее пользоваться строковыми функциями. Но у меня вывод короткого текста примерно так:
    PHP:
    1. <?
    2. function shortext($input)
    3.  {
    4.    $output=strip_tags($input); //Убираем теги
    5.    if(strlen($input)>128) {$output=($output,0,128); $output.='...';} //Обрезаем строку до 128 символов и подставляем в конце многоточие
    6.    $output=ln2br($output); //Преобразуем переносы в <br>
    7.    $output=preg_replace("*www.site.ru*",'<a href="http://www.site.ru">www.site.ru</a>',$output); //Делаем адрес нашего сайта ссылкой с помощью регурялки
    8.    return($output);
    9.  }
     
  9. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Тут нет регулярных выражений. Когда получаешь примеры и не можешь их понять, иди в мануал и читай описание функций, а не ставь жеманные смайлики.
     
  10. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    я знаю что там нет регулярных выражений, и нечего меня никуда посылать! Если бы ты внимательно читал, я пытался свести решение к решению с использованием регулярных выражений и был немного удивлен что достаточно удобно можно обойтись без них.
     
  11. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    [vs]
    Вот, замечательно! Теперь надо что-нить типа str_replace'e чтобы наборы значений можно было, но это я найду...
    всем спасибо, тема закрыта
     
Статус темы:
Закрыта.