|
|
|
|
|
для: cheops
(30.07.2004 в 21:55)
| | Огромное спасибо :) | |
|
|
|
|
|
|
|
для: cheops
(30.07.2004 в 21:55)
| | Перед литерой b в квадратных тегах я поставил пробел, чтобы не происходила интерпретация тэга на этом форуме, перед использованием его нужно убрать - скрипт рассчитан на то, что тег состоит из одного символа, заключенного в квадратные скобки... | |
|
|
|
|
|
|
|
для: cheops
(30.07.2004 в 21:31)
| | Тогда поиск можно осуществлять примерно следующим образом:
<?php
// Исходная строка
$postbody = "[ b]Это[ /b] очень жирный [ b]текст[ /b].";
// Результирующая строка
$result = "";
// Вспомогательные переменные
$lastocc = 0;
$sndocc = 1;
while($sndocc)
{
// Начало жирного фрагмента
$fstocc = strpos($postbody, "[ b]", $lastocc);
// Завершение жирного фрагмента
$sndocc = strpos($postbody, "[ /b]", $fstocc);
if(($fstocc>0 && $sndocc>0 && $lastocc>0) || ($fstocc >= 0 && $sndocc>0 && $lastocc == 0))
{
// Помещаем фрагмент до тега [ b] в строку $result
$result .= substr($postbody, $lastocc, $fstocc - $lastocc);
// Жирный фрагмент
$result .= "<b>".substr($postbody, $fstocc + 3, $sndocc - $fstocc - 3)."</b>";
$lastocc = $sndocc + 4;
}
else
{
// Подбираем остатки строки
$result .= substr($postbody,$lastocc,strlen($postbody)-$lastocc);
// Выходим из цикла
break;
}
}
echo $result;
?>
|
Если всё-таки захотите всё оставить на совести посетителя, то можно просто написать
<?php
// Исходная строка
$postbody = "[ b]Это[ /b] очень жирный [ b]текст[ /b].";
$postbody = str_replace("[ b]","<b>",$postbody);
$postbody = str_replace("[ /b]","</b>",$postbody);
echo $postbody;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.07.2004 в 21:31)
| | А можно функцию узнать поиска? | |
|
|
|
|
|
|
|
для: Sonic
(30.07.2004 в 20:26)
| | Лучше заменить теги на квадратные, и осуществлять последовательный поиск - находим начало [t] и переводим его только в том случае, если ему соответствует конец, [/t]. Если конца мы не находим, то и преобразование не осуществляется, в этом случае, вместо жирного текста посетители увидят тег [t] - это менее страшно... | |
|
|
|
|
|
|
| Я бесконечно рад за вашу помощь, спасибо!
У меня есть такой вопрос, вот я написал гостевую, элементарнийшую, так вот проблема. Пока пусть будет без замен тегов <b> на
Гостевая работает так. Открываем файл, записываем в него с определёнными параметрами текст
$fp = fopen("mess.dat","a+");
fwrite($fp,"<b>Сегодня:</b> <font color='green'>$date</font><br>---------------<br><b>Ваше имя:</b> $name<br><b>Ваше мыло:</b> $email<br><b>Сообщение:</b> $mess<br><hr>");
fclose($fp);
|
, и потом его выводим.
Вопрос в том, что когда я в сообщении пишу тег <b> и не закрываю его. То всё потом жирное, то есть надо както проверять и закрывать все открытые тег в пределах сообщения... | |
|
|
|
|