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

Форум MySQL

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

 

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

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

тема: можно ли вырезать теги из текста средствами sql?
 
 автор: vadimka   (26.08.2009 в 10:52)   письмо автору
 
 

Здравcтсвуйте!
Такая проблема - вывожу по 200 знаков из бд, если я правильно понял то выводится "чистый" текст без html тегов, но считает оно с тегами, т.е на самом деле выводится грубо говоря 100 - 120 знаков, в другой записе, где нет тегов в начале, выводит все 200 знаков. нельзя ли средствами sql очистить текст, а уже потом

SUBSTRING(content,1,200) as con

заранее благодарю!

  Ответить  
 
 автор: Trianon   (26.08.2009 в 11:12)   письмо автору
 
   для: vadimka   (26.08.2009 в 10:52)
 

В тексте нет никаких тегов.
Теги есть только в гипертексте - в тексте обычные символы (часть из которых может являться, а может не являться символами разметки)
Гипертекст напрямую СУБД не хранят.

  Ответить  
 
 автор: vadimka   (26.08.2009 в 11:18)   письмо автору
 
   для: Trianon   (26.08.2009 в 11:12)
 

а регулярными средствами sql высчитать, что в тексте являться символами разметки и вырезать, а потом...

  Ответить  
 
 автор: Trianon   (26.08.2009 в 11:20)   письмо автору
 
   для: vadimka   (26.08.2009 в 11:18)
 

MySQL-регулярки позволяют лишь ответить на вопрос, отвечает строка шаблону или нет.

  Ответить  
 
 автор: vadimka   (26.08.2009 в 11:41)   письмо автору
 
   для: Trianon   (26.08.2009 в 11:20)
 

эх! спасибо за объяснение!

  Ответить  
 
 автор: Valick   (26.08.2009 в 11:38)   письмо автору
 
   для: vadimka   (26.08.2009 в 11:18)
 

выбирайте 500 символов
и средствами РНР делайте зачистку и ограничивайте до 200 символов

  Ответить  
 
 автор: vadimka   (26.08.2009 в 11:42)   письмо автору
 
   для: Valick   (26.08.2009 в 11:38)
 

спасибо!

  Ответить  
 
 автор: Valick   (26.08.2009 в 11:50)   письмо автору
 
   для: vadimka   (26.08.2009 в 11:42)
 

вот уж точно незашто)

  Ответить  
 
 автор: Евгений Петров   (26.08.2009 в 22:51)   письмо автору
 
   для: vadimka   (26.08.2009 в 10:52)
 

DELIMITER ;;
CREATE FUNCTION `strip_tags`( Dirty text) RETURNS text CHARSET utf8
    DETERMINISTIC
BEGIN
  DECLARE iStart, iEnd, iLength int;
  WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO
    BEGIN
      SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty ));
      SET iLength = ( iEnd - iStart) + 1;
      IF iLength > 0 THEN
        BEGIN
          SET Dirty = Insert( Dirty, iStart, iLength, '');
        END;
      END IF;
    END;
  END WHILE;
  RETURN Dirty;
END;;
DELIMITER ;


Вырезает все что между "<" и ">"
mysql> SELECT strip_tags('<b>Hello</b>');
+----------------------------+
| strip_tags('<b>Hello</b>') |
+----------------------------+
| Hello                      | 
+----------------------------+


Хотя я бы лучше не возлагал на БД ни эту процедуру ни substring. Насколько я понимаю если это короткое описание чего то, то лучше это короткое описание хранить отдельно.

  Ответить  
 
 автор: vadimka   (27.08.2009 в 17:36)   письмо автору
 
   для: Евгений Петров   (26.08.2009 в 22:51)
 

надо будет разбиратся... это первая страница новостей, когда выводятся заголовки, уменьшенное фото и и первые 200 знаков из статьи, кто знает, чего туда заказчик понакидывает ... (прикручен навороченный редактор при вводе статей). Т.е имело смысл 200 первых "очищенных" знаков кидать в отдельное поле?

  Ответить  
 
 автор: Евгений Петров   (28.08.2009 в 22:51)   письмо автору
 
   для: vadimka   (27.08.2009 в 17:36)
 

Я бы дал заказчику возможность самому вводить короткое описание. Но если он настолько не уважает то чем он занимается, то можно фичу для него сделать - по умолчанию сохраняется 200 символов очищенного текста.

  Ответить  
 
 автор: Евгений Петров   (28.08.2009 в 22:58)   письмо автору
 
   для: vadimka   (27.08.2009 в 17:36)
 

Кстати все эти WYSIWYG'и это такая жуть, вечные проблеммы с ними (и зачастую как раз потому что заказчик не умеет ими правильно пользовться). ИМХО научить человека 10 тегам намного проще чем потом разгребать последствия. А лучше в XML хранить документы и потом на основе них генерировать html со стилями. Вот например в каком виде хранится документация PHP (http://cvs.php.net/viewvc.cgi/phpdoc/howto/tools.xml?revision=1.30&view=markup)

  Ответить  
 
 автор: vadimka   (31.08.2009 в 11:03)   письмо автору
 
   для: Евгений Петров   (28.08.2009 в 22:58)
 

Спасибо! век живи - век учись (to live to learn):)

  Ответить  
Rambler's Top100
вверх

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