X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Парсинг строки-шаблона, помогите с решением задачи
Дилетант_mw
Дилетант_mw
Topic Starter сообщение 11.11.2010, 16:43; Ответить: Дилетант_mw
Сообщение #1


Здравствуйте, товарищи специалисты.
Помогите в очередной раз дилетанту.

Когда на форуме человек вводит текст с url например

Адрес ссылки: http://www.noninin.ru/


то обработчик делает с ним так:

$text = preg_replace("/(\s+)(http:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is",
"$1 <noindex><a href=$2 rel=nofollow target=_blank>$2</a></noindex> $3",$text);

где в $2 - урл и генерится код

Адрес ссылки: <noindex><a href=http://www.noninin.ru/ rel=nofollow target=_blank>http://www.noninin.ru/</a></noindex>


захотелось url скрывать и я решил делать вот так:

$text = preg_replace("/(\s+)(http:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is",  
"$1 <a target=_blank href=\"http://www.mysite.ru/follow.php?url=".base64_encode($2)."\">$2</a> $3",   $text);

Т.е. я хочу кодировать адрес ссылки, а потом в follow.php раскодируя выводить.

Но выдается ошибка:
[error] PHP Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in parser.php on line 20

Помогите пожалуйста с кодом. Тут по аналогии с http://www.masterwebs.ru/topic/7293-parsin...-vmesto-stroki/ похоже. Но мне не справиться.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
thoth666
thoth666
сообщение 12.11.2010, 11:35; Ответить: thoth666
Сообщение #2


Дилетант, проблема в base64_encode($2)
здесь эта конструкция работать не будет
да и зачем вам base64_encode?


ставьте сразу

$text = preg_replace("/(\s+)(http:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is",
"$1 <a target=_blank href=\"http://www.mysite.ru/follow.php?url=$1\">$2</a> $3", $text);

а follow.php закройте в robots.txt от индексации.


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Дилетант_mw
Дилетант_mw
Topic Starter сообщение 12.11.2010, 11:56; Ответить: Дилетант_mw
Сообщение #3


thoth666, напишите закрытие в robots.txt Если вам не трудно, конечно.

У меня сейчас заточено под декодирование

<?php
$url = ( isset($_GET['url']) and $_GET['url'] ) ? base64_decode($_GET['url']) : '';
if ($url) { header ("Location: $url"); }
?>


Вся эта история с кодированием-декодированием связана из-за того, чтобы не видели реферальных ссылок. Это не моя идея, я не рефферальничаю, просто взял готовый вариант и сейчас вот под себя подтачиваю.


Написал Disallow: /follow.php* вроде как бы работает.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Дилетант_mw
Дилетант_mw
Topic Starter сообщение 12.11.2010, 12:53; Ответить: Дилетант_mw
Сообщение #4


Спасибо всем. Тему можно закрыть.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 14.11.2010, 14:12; Ответить: ZiTosS
Сообщение #5


Дилетант, напоследок,
1) Почитайте http://php.su/functions/?preg_replace
Модификатор /e меняет поведение функции preg_replace() таким образом, что параметр replacement после выполнения необходимых подстановок интерпретируется как PHP-код и только после этого используется для замены. Используя данный модификатор, будьте внимательны: параметр replacement должен содержать корректный PHP-код, в противном случае в строке, содержащей вызов функции preg_replace(), возникнет ошибка синтаксиса.
[php]<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
"'\\1'.strtoupper('\\2').'\\3'",
$html_body);
?>[/php]

2) Так же можно создавать функции на лету и использовать карманы как массив параметра данной функции: create_function()
Тему закрываю.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыТрафик в Телеграм (рассылка, инвайт, парсинг)
9 gelt 2858 8.4.2024, 15:28
автор: gelt
Открытая тема (нет новых ответов) Верстка шаблона Битрикс
0 bat 1422 26.9.2023, 6:22
автор: bat
Открытая тема (нет новых ответов) ВКонтакте: полный комплекс услуг (массовая рассылка по стенам групп и в ЛС), парсинг, лайки, инвайты
Гарантия самой низкой цены
4 MaxChemist 1922 1.1.2023, 13:23
автор: MaxChemist
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСбор баз, парсинг информации, постинг, автоматизация
Качественно и в срок
21 SEOMR 20843 22.7.2022, 15:10
автор: iodjin
Открытая тема (нет новых ответов) Парсинг
0 alnsam 856 20.7.2022, 16:25
автор: alnsam


 



RSS Текстовая версия Сейчас: 25.4.2024, 8:15
Дизайн