Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Функция, записывающая кол-во найденных символов в строке
Форумы портала PHP.SU » PHP » Программирование на PHP » Функция, записывающая кол-во найденных символов в строке

Страниц (1): [1]
 

1. Staind - 10 Декабря, 2007 - 14:15:11 - перейти к сообщению
Сделал через js простейшие bbcode. Все вроде нормально. Однако, через php хочу ввести дополнительную проверку открытых\закрытых bbcode. Т.е. если пользователь ввел некорректно так:

, то уже php удаляет не нужный открывающий


Вот здесь я застропорился. Рыскаю в поисках функции на php.net, которая подсчитывает сколько в строке найденных определенных символов. Т.е. строка "qaqa", ищем "q" и она возвращает число 2. Не знаете такую? Улыбка\n\n(Добавление)
По поводу js, то смотрел я как сделано на phpBB2. Сейчас попробовал там написать так:

И лишний "тэг" у них там не затирается, добавляешь сообщение и как было
PHP:
скопировать код в буфер обмена
  1. [b][/b][b]

, так и осталось :\ Но мне все равно охота эту проверку сделать.
2. evgenijj - 10 Декабря, 2007 - 15:59:52 - перейти к сообщению
http://php.su/functions/?substr-count
Количество вхождений подстроки
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( substr_count( $message, '[b]' ) != substr_count( $message, '[/b]' ) )
  3. {
  4. .........................
  5. }
  6.  

Одно НО -- поиск ведется с учетом регистра символов. Так что, скорее всего придется использовать регулярные выражения.

Кстати, в phpBB есть проверка на парность. И перед отправкой сообщения все непарные теги дополняются.
PHP:
скопировать код в буфер обмена
  1.  
  2. function bbstyle(bbnumber) {
  3.   var txtarea = document.getElementById("sendMessageForm").message;
  4.  
  5.   txtarea.focus();
  6.   donotinsert = false;
  7.   theSelection = false;
  8.   bblast = 0;
  9.  
  10.   if (bbnumber == -1) { // Close all open tags
  11. ....................................................................
  12.  
3. Staind - 10 Декабря, 2007 - 17:17:25 - перейти к сообщению
2evgenijj, ОГРОМНОЕ ТЕБЕ СПАСИБО. (Крутая) функция, незнаю как упустил, но, видимо, я невнимательный просто.
А с регистром не проблема, добавил strtolower и написал так:


По поводу js функции, которая закрывает тэги, да, я ее видел, но там немного другая схема. Мне так удобнее. Спасибо еще раз. Вопрос снят.

 

Powered by ExBB FM 1.0 RC1