[РЕШЕНО] Лишние символы при подсчете содержимого

Аватар пользователя Bios Bios 30 июля 2012 в 16:18

Создал поле... через вьювс вывожу группу нод и для каждой ноды нужно посчитать количество символов...

делал по этому способу

но вот косяк когда начинаю считать количество символов оказывается что всегда символов на 11 больше чем есть на самом деле в этом текстовом поле (несколько строк)

обрабатываю в шаблоне вьювс views-view-fields--blog--page.tpl.php
вот содержимое файла

<?php foreach ($fields as $id => $field): ?>
<?php
if($id=='title'){$zagolovok=$field->content;}
if($id=='field_answer') {$answer=$field->content;}
if($id=='created'){$time=$field->content;}
if($id=='view_node'){$link=$field->content;}
?>
<?php endforeach; ?>

<?php
echo $answer.' '.drupal_strlen($answer);
?>

подскажите в чем косяк и откуда мистика...

Комментарии

Аватар пользователя Bios Bios 31 июля 2012 в 8:10

"Chyvakoff" wrote:

Содеримое поля field_answer - тип поля "Текстовое поле несколько строк"

Аватар пользователя Bios Bios 31 июля 2012 в 10:03

"graker" wrote:

Спасибо нашлось решение благодаря вам. Оказалось CKEditor все за каким то оборачивает в <div> </div> в них и есть эти самые 11 символов...

Не подскажите можно в CKEditor убрать эту опцию?

Аватар пользователя graker graker 31 июля 2012 в 11:00

Bios wrote:
Спасибо нашлось решение благодаря вам.
Я так думаю, Чувакофф на то же самое намекал Smile

Quote:
Не подскажите можно в CKEditor убрать эту опцию?
Да он все равно будет теги вставлять - иначе зачем он вообще нужен? Надо либо отключить CKE для этого поля (напр. выбрать формат plain), либо при подсчете символов вырезать из текста поля все теги регулярками.

Аватар пользователя Green Chest Green Chest 31 июля 2012 в 12:39

Bios wrote:
Не подскажите можно в CKEditor убрать эту опцию?

Правильного ответа я не знаю, но я знаю рабочие варианты. Их и скажу.

Не знаю как на счёт 7-ки, сохранилось ли там так же, как в 6-ке. Формат ввод задаётся ведь. В нём можно указать разрешённые теги - исключите от туда div, либо при выводе просто запускайте стандартную, простейшую php-фукнцию - strip_tags.
И trim чтобы убрать по краям пробелы, табуляции и в общем-то и получится только сам текст, со всеми знаками препинания и т.п.

Аватар пользователя graker graker 31 июля 2012 в 11:26

RxB wrote:
"graker" wrote:
либо при подсчете символов вырезать из текста поля все теги регулярками.

check_markup() жо!

Так check_markup фильтры прогоняет по тексту, а я про то, чтоб убрать теги и сосчитать значащие буковки.
Собстна, стрип_тегс есть - тогда разве что возникнут проблемы с подсчетом переводов строки.

Аватар пользователя Chyvakoff Chyvakoff 31 июля 2012 в 12:26

"graker" wrote:
Я так думаю, Чувакофф на то же самое намекал :)

Ну да,были теже мысли))Но в сули некоторых обстоятельств не стал об этом сразу говорить)) Сомневался из-за кодировки..
"graker" wrote:
тогда разве что возникнут проблемы с подсчетом переводов строки.

Вряд ли у него там брки есть..

Аватар пользователя graker graker 31 июля 2012 в 12:36

Chyvakoff wrote:
Ну да,были теже мысли))Но в сули некоторых обстоятельств не стал об этом сразу говорить)) Сомневался из-за кодировки..
А, ясно. drupal_strlen мультибайты умеет учитывать Smile

Аватар пользователя Chyvakoff Chyvakoff 31 июля 2012 в 14:08

Замучаешься из висвигов html вычищать..они за каждый пук и чих втыкают тэги..собственно для этого их и придумали;)

Аватар пользователя Green Chest Green Chest 31 июля 2012 в 15:25

Ммм, кстати, у ckeditora есть в настройках, "Очистка и вывод", там не слишком много, но прилично настроек. У меня вот в div не обрамляет, не знаю из-за какой именно настройки и где. (разумеется, при формате ввода без фильтрации, т.е. сам цкедитор не обрамляет)