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

Форум PHP

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

 

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

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

тема: Невидимые метки в тексте
 
 автор: Владимир55   (26.07.2007 в 10:11)   письмо автору
 
 

Есть необходимость выделить начало и конец конкретного слова в тексте. Пока что я не придумал ничего лучшего, кроме как писать до него и после несколько знаков, вероятность естественного появления которых в тексте чрезвычайно мала. Получается типа

Наступило ННННлетоКККК.
Ночи ННННлетомКККК коротки.

Однако хотелось бы сделать это более корректным образом. То есть разместить перед словом такой знак, который броузер бы не воспроизводил, но который впоследствии могла бы отыскать функция str_replace. Нужно два таких знака - до и после слова.

Есть в арсенале рнр что-нибудь подходящее?

   
 
 автор: Trianon   (26.07.2007 в 10:21)   письмо автору
 
   для: Владимир55   (26.07.2007 в 10:11)
 

php тут не при чем.
при хранении HTML можно <a mark=1>использовать</a> теги
при хранении plain text придется [marked]извращаться[/marked] с чем-то вроде bbcode, заменяя их при отображении функциями str_replace

   
 
 автор: Владимир55   (01.08.2007 в 15:00)   письмо автору
 
   для: Trianon   (26.07.2007 в 10:21)
 

К сожалению, это не сработало. И вот почему.

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

Наступило ННННлетоКККК. (выделено лето).

В будущем НННН будет заменено на <a href="index.html">, а КККК заменено на </a>. Но это потом, а пока что желательно вместо НННН и КККК вывести текст в строку с невидимыми метками, поскольку любые метки, и предложенные Вами [marked] тоже, очень мешают.

Для работы с формой я использую код


echo"<form action='?act=".$n_ss."' method='post'>";
for ($j = 1; $j <= $n_ss; $j++)
    {
       echo "<input type=text size=110 name=\"peremen".$j."\" value=\""
      . htmlspecialchars($ssilka[$j]) . "\"><br/>";
    }
echo '<input type="submit" value="Ввести" >' ;
echo "</form>";
    if ($_GET['act']==$n_ss)
    {
        for ($j = 1; $j <= $n_ss; $j++)
        {
         $ssilka[$j] = $_POST["peremen$j"];
         }
}


На мой взгляд, для этой цели подошли бы какие-нибудь управляющие или служебные коды, которые в текстовый файл запишутся, но при просмотре текста в форме броузером не воспроизведутся. Но, к сожалению, htmlspecialchars их отрубает.

Можно ли что-то придумать?

   
 
 автор: sim5   (01.08.2007 в 15:13)   письмо автору
 
   для: Владимир55   (01.08.2007 в 15:00)
 

Вам что надо, в одном предложении иметь несколько выделенных слов:
Этот текст написан с виделением ?

   
 
 автор: Владимир55   (01.08.2007 в 15:39)   письмо автору
 
   для: sim5   (01.08.2007 в 15:13)
 

Да, так. Хотя бы одно слово, начало и конец которого имеют метку.

Ваш текст написан с выделением, но, как я полагаю, это сделано тегами <B> Мне это не подойдет, поскольку при этом в форме будет <тег открывающийся>лето<тег закрывающийся>. А надо, чтобы в форме читалось "лето", не загромождая тегами. И с этими невоспроизводимыми тегами информация сохранялась в моей форме.

Такое возможно?

   
 
 автор: sim5   (01.08.2007 в 15:56)   письмо автору
 
   для: Владимир55   (01.08.2007 в 15:39)
 

Если вы напишите в своей форме:

"Этот виделеный текст"

то ничего не помешает пользователю, при его редактировании, снести все ваши невидимые метки. Если вы хотите разрешить пользователю выделять (отмечать) текст, то применяйте типа bbcodes. Если речь идет только об одном слове, которое находится в INPUT, то в это поле вообще ничего добавлять не надо - при получении этого поля, достаточно будет к его значеню "приклеить" все, что вам потребуется.

   
 
 автор: AlexSol   (01.08.2007 в 16:42)   письмо автору
 
   для: sim5   (01.08.2007 в 15:56)
 

сделайте как в бодьшинстве вики - выделяется все что между звездочками:


текст с *выделением*

   
Rambler's Top100
вверх

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