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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема со свободными типами переменных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
voltag
Отправлено: 20 Февраля, 2010 - 14:54:36
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010  


Помог: 1 раз(а)




Здравствуйте.

Я пишу приложение которое позволяло бы формировать ХТМЛ странички. Я предусмотрел в приложении ББ коды(так называют коды спец разметки страничек ХТМЛ которые потом преобразуются в ХТМЛ представление). Я написал функцию поиска ББ кода, но она не срабатывает если признак ББ кода стоит в позиции 0 (я пользуюсь строковыми функциями потому что ОНИ быстрее и ББ кодов у меня достаточно мало, чтобы жаловаться на "писанину" и пользоваться регулярными выражениями)



PHP:
скопировать код в буфер обмена
  1.  
  2. //$_POST['txtpole'] - обрабатываемые строки из textarea
  3. // $PosEND - переменная в которую я собираюсь заносить позицию
  4. //последнего найденого закрывающего признака ББ кода и потом подставлять в цикле //по поиску нового ББ кода (так ищется быстрее)
  5.  
  6. //вот то что я примерно подаю на вход(прописываю руками чтобы было понятнее)
  7. $_POST['txtpole']='[b][/b]';
  8.  
  9.   $PosEND=0; //Переменная позиции признака окончания бб кода - ]
  10.  
  11.   $Pos=strpos($_POST['txtpole'], '[', $PosEND);  //Сейчас в переменной $Pos находиться 0
  12.  
  13.  
  14.   //сейчас произойдёт сравнение и ПХП переведёт 0 в false
  15.   while ($Pos)
  16.   {
  17.     // процесс обработки ББ кода который включает в себя
  18.     // процесс поиска признака окончания бб кода(переменная $PosEND - определена)
  19.    
  20.      //Выясняем где следующий ББ код
  21.      $Pos=strpos($_POST['txtpole'], '[', $PosEND);
  22.   }
  23.  
  24.  


Вопрос: как мне заставить ПХП не переводить 0 в false.

С уважением
 
 Top
SDR
Отправлено: 20 Февраля, 2010 - 14:58:37
Post Id


Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




while ($Pos !== false)

почему объёснять надо?
 
 Top
Ch_chov
Отправлено: 20 Февраля, 2010 - 15:00:11
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




А зачем нужен цикл?
str_replace может все сразу заменить

(Отредактировано автором: 20 Февраля, 2010 - 15:06:05)

 
 Top
voltag
Отправлено: 20 Февраля, 2010 - 15:00:40
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010  


Помог: 1 раз(а)




SDR пишет:
while ($Pos !== false)

почему объёснять надо?


Нет, не надо.. Всем спасибо большое...
(Добавление)
Ch_chov пишет:
А зачем нужен цикл?
strpos может все сразу заменить


Это я пример такой простой написал )))
с простыми кодами всё просто но у меня сложные, например:
[1, L] - 1 - номер вставляемый в код картинки L -позиционирование
и на каждой итерации я должен составлять вставляемую строку

(Отредактировано автором: 20 Февраля, 2010 - 15:11:54)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB