|
|
автор: AcidTrash(кафе) (02.10.2008 в 15:38) |
|
|
для: Keda
(02.10.2008 в 14:47)
| | >'<a href="http://\\0">\\0</a>'
Да, это меня, что-то заклинило.
Ладно, насчет вида адреса, это известно только автору. | |
|
|
|
|
|
|
|
для: AcidTrash
(02.10.2008 в 13:12)
| | Выражение составлено верно. Необходимо его правильно использовать. Строка замены должна быть
'<a href="http://\\0">\\0</a>'
На выходе будем иметь текст
список, неполный :
доп. комманда инициализации соединения
AT+CGDCONT=1,"IP","<a href="http://www.internet.beeline.ru">www.internet.beeline.ru</a>."
индексный файл Perl index.pl
Насчет полного адреса. Задача стояла распознавать только домен, с чем прекрасно справляется мое выражение. Мало того, оно соответствует RFC 1034, в котором сказано, что домен состоит только из букв латинского алфавита, цифр, точки и знака минус. Домен должен начинаться с буквы или цифры и не должен содержать две точки подряд. Единственное, что не учитывается - это максимальная длинна адреса. | |
|
|
|
|
|
|
|
для: Keda
(02.10.2008 в 10:29)
| | >А в чем собственно проблема? Точка в конце не захватывается. По теме верно.
У вас выражение вообще не правильно составлено. Не только точка или запятая в конце не захватывается, но еще и половина адреса.
Вот пример текста в котором надо заменить www.internet.beeline.ru. на ссылку.
С вашим РГ это будет выглядеть как-то так:
<?
$txt = 'список, неполный :
доп. комманда инициализации соединения
AT+CGDCONT=1,"IP","www.internet.beeline.ru."
индексный файл Perl index.pl
';
print preg_replace("/www\.([aA-zZ0-9][aA-zZ0-9-]*\.)+[aA-zZ]{2,6}/", '<a href="http://\\1">\\1</a>', $txt);
?>
|
Ну и как отлично все работает?
Думаю, что нет!
Тем более по тому как написал автор, следует, что ему проверять
на корректность не надо(лишь бы только было www), но это его проблемы.
Бог с ним сделаем с проверкой, тогда это выражение будет выглядеть как-то так:
preg_replace("/(www\.[aA-zZ0-9\.]+[aA-zZ]{2,6})/", '<a href="http://\\1">\\1</a>', $txt);
|
Но! Если адрес будет типа www.site.ru/?b=8, то в гиперссылку пол адреса не попадет
Так что вариант предложенный мной автор: AcidTrash(кафе)(30.09.2008 в 13:14), думаю более подходит. | |
|
|
|
|
|
|
|
для: AcidTrash
(01.10.2008 в 22:33)
| | А в чем собственно проблема? Точка в конце не захватывается. По теме верно.
Если есть какие-либо возражения, прошу высказаться по существу, а не абстрактными намеками. | |
|
|
|
|
|
|
|
для: Keda
(01.10.2008 в 17:08)
| | И что это за народное плавание?
Смотрим по теме от автор: Владимир22 (25.09.2008 в 23:20) . | |
|
|
|
|
|
|
|
для: Владимир22
(24.09.2008 в 17:53)
| | Если ориентироваться только на www и сделать простенько, то выражение будет таким
/www\.([aA-zZ0-9][aA-zZ0-9-]*\.)+[aA-zZ]{2,6}/ | |
|
|
|
|
автор: AcidTrash(кафе) (30.09.2008 в 13:14) |
|
|
для: Владимир22
(25.09.2008 в 23:20)
| |
$text=preg_replace('#(www\.\S+\b)#s', '<a href="http://\1">\1</a>', $text);
|
| |
|
|
|
|
|
|
|
для: EXP
(26.09.2008 в 01:20)
| | EXP, Ваш код не работает (просто ничего не происходит, никаких замен).
$text="Это текст в котором могут встречаться названия сайтов, например www.site.ru или после названий могут быть какие-либо знаки, типа точки и пр. - примеры: www.site.ru, www.site.ru; www.site.ru- www.site.ru! www.site.ru? www.site.ru* www.site.ru. Надо, чтобы все названия сайтов были преобразованы в гиперссылки.";
$text=preg_replace('/^www\.\S+[^\.,!"$&#\(*,:=_0-9]$/' , '<u>\0</u>', trim($text));
echo $text;
|
Ничего не работает! | |
|
|
|
|
|
|
|
для: Владимир22
(25.09.2008 в 23:21)
| | Возможно вас заинтересует синтаксис Регулярных выражений
например здесь http://softtime.ru/group/id_group=3 ?
Это я не потому говорю что задача какая-то из ряда вон выходящая, а потому что Вы не только не смогли обьяснить что Вам нужно но и сами не знаете что Вам нужно.
Ну ск5азали что из формы вводят эти www............... ,
ну пусть даже это будет INPUT, и запросто можно ещё опираться на то что www............... это и есть вся строка ,
и можно применять ^ и $,
но теперь осазалось что Вам нужно не просто любые непробельные символы после www.
И какие именно адреса ,или их форматы, вам нужны, Вы тоже не знаете, вот, и что Вам можно ответить?
preg_replace('/^www\.\S+[^\.,!"$&#\(*,:=_0-9]$/' , '<u>\0</u>', trim($text));
|
?
[поправлено модератором] | |
|
|
|
|
|
|
|
для: AcidTrash
(25.09.2008 в 21:42)
| | Ещё актуально. Нelp! | |
|
|
|
|