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

Форум PHP

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

 

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

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

тема: Ссылки в тексте параграфа
 
 автор: boris   (19.07.2005 в 08:51)   письмо автору
 
 

Добрый день!
Не хочу изобретать велосипед, может кто-нибудь подскажет стратегию решения следующей задачи:

Создаю систему администрирования новостей. Текст новости вводится в поле формы. Необходимо фразу из этого текста сделать ссылкой или потом при редактировании - очистить от ссылки. Ну не вписывать же офис-менеджеру в форму HTML-теги.

Я делаю так: рядом с полем для ввода текста новости есть поле "текст ссылки", куда вводится слово или фраза СУЩЕСТВУЮЩАЯ в тексте новости и поле "URL", куда вводится адрес ссылки.
Далее скрипт заменяет требуемую фразу на нее же, но с добавлением тегов ссылки:

$_POST['name'] = str_replace("$name_anch","<a href=$url_anch>$name_anch</a>",$_POST['name']);

По моему как-то коряво, да и для удаления ссылки надо "чистить" текст от тегов в форме ввода текста новоти.
Кстати можно ли не показывать HTML-теги в поле формы?

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

Борис.

   
 
 автор: cheops   (19.07.2005 в 13:10)   письмо автору
 
   для: boris   (19.07.2005 в 08:51)
 

Обычно применяют тэги [url=$url_anch]$name_anch[/url], которые затем интерпретируются в тексте... К сожалению, все варианты немного корявые, например, ещё одно решение добавлять ссылку отдельно в конце новости... Самое элегантное решение это обучить оператора тегу <a>...

   
 
 автор: Boris   (19.07.2005 в 13:21)   письмо автору
 
   для: cheops   (19.07.2005 в 13:10)
 

А как вы это делаете в вашей гостевой книге, если не секрет?

   
 
 автор: cheops   (19.07.2005 в 13:33)   письмо автору
 
   для: Boris   (19.07.2005 в 13:21)
 

В ответах администратора имеется ввиду? Там чистый HTML, администратор использует тэг <a> - так как отвечают сотрудники студии - у них проблем с этим не возникает :)))

   
 
 автор: Boris   (19.07.2005 в 13:50)   письмо автору
 
   для: cheops   (19.07.2005 в 13:33)
 

Спасибо за помощь, я решил остановиться на варианте (см. тема: [url]Администрирование, управление ссылками в новостях и т.п. [/url] ).

P.S. В этой теме вопрос продублирован, т.к. я начал опасаться что на заголовок "Ссылки в тексте параграфа" никто внимания не обратит.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5545&page=1

   
 
 автор: Boris   (19.07.2005 в 13:58)   письмо автору
 
   для: Boris   (19.07.2005 в 13:50)
 

Что-то теги [url] [/url] не сработали!

   
 
 автор: cheops   (19.07.2005 в 14:12)   письмо автору
 
   для: Boris   (19.07.2005 в 13:58)
 

А в смысле тэги не сработали? Какой код используется и в чём проблема?

   
 
 автор: Boris   (19.07.2005 в 14:19)   письмо автору
 
   для: cheops   (19.07.2005 в 14:12)
 

Не сработали псевдотеги url (специально не ставлю скобки) в вашей форме "ответить на сообщение":

Выше в теме я выделил псевдотегами следующую фразу:
(см. тема: [url]Администрирование, управление ссылками в новостях и т.п. [/url] ).
и ввел в поле URL адрес ссылки.

Я ожидал что фраза "Администрирование, управление ссылками в новостях и т.п." станет ссылкой с адресом, введеным в поле URL.

   
 
 автор: cheops   (19.07.2005 в 14:30)   письмо автору
 
   для: Boris   (19.07.2005 в 14:19)
 

Существует несколько способов обработки тэгов, например такой
<?php
$text 
"... на следующем [url = http://www.softtime.ru] ресурсе [/url]
         вы можете найти ..."
;
$patern "#\[[\s]*url[\s]*=[\s]*([^\]]*)\]([^\[]*)\[[\s]*/url[\s]*\]#i";
$replacment '<a href=\\1>\\2</a>';
echo 
preg_replace($patern$replacment$text); 
?>

   
 
 автор: Boris   (19.07.2005 в 14:34)   письмо автору
 
   для: cheops   (19.07.2005 в 14:30)
 

Проверка ... на следующем ресурсе вы можете найти ...

Не работает! Не мой код, а ваша форма на вашем сайте. Может я что-то не так делаю? Ссылка не выделяется.
Вот псевдотеги тегов <b>, работают.
Попробую еще раз:
Итак щелкни меня!
Псевдотеги есть, а ссылки нет!

   
 
 автор: cheops   (19.07.2005 в 14:43)   письмо автору
 
   для: Boris   (19.07.2005 в 14:34)
 

В данном форуме это не работает... работает ли у вас на сервере приведённый выше скрипт?

   
 
 автор: Boris   (19.07.2005 в 14:49)   письмо автору
 
   для: cheops   (19.07.2005 в 14:43)
 

Работоспособность вашего скрипта я не проверял (спасибо вам за него), я думаю проблем не возникнет. Мне была важна стратегия решения проблемы, благодаря вашему форуму я ее нашел.

Сейчас мне интересно почему в данном форуме не работают псевдотеги <url>, ведь они есть в списке используемых тегов. А если они работают, то как ими пользоваться, чтобы пометить фразу из текста как ссылку.
До сих пор мне этого не удалось :-)

   
 
 автор: cheops   (19.07.2005 в 14:51)   письмо автору
 
   для: Boris   (19.07.2005 в 14:49)
 

Они работают только для url - если вы уберёте пробелы из тэгов
[ url]http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5545&page=1[ /url]
то получите ссылку
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5545&page=1

   
 
 автор: Boris   (19.07.2005 в 14:55)   письмо автору
 
   для: cheops   (19.07.2005 в 14:51)
 

Пробую...
См. сайт http://www.softtime.ru

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

См. сайт где есть отличный форум PHP.
При этом фраза "форум PHP" становится ссылкой (подчеркнутой и синего цвета), а при наведении на нее мышью в строке состояния появляется: http://www.softtime.ru/forum/

Просто ваш форум так устроен :-)

   
Rambler's Top100
вверх

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