Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться с мамботом, обработка текста 
:(
    Опции темы
Yura_Matsuk
Дата 11.8.2008, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 16.5.2004

Репутация: нет
Всего: нет



Здравствуйте. Пишу мамбот для Joomla, который должен скрывать ссылки.

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

Вся эта штуковина работает, но есть одно но. Нужно сделать исключения, чтобы обрабатывались не все ссылки. Эти исключения прописаны в БД. Но и это еще не все. Исключения можно помечать тегом {openlink}.

Я все это написал, у меня работает. Когда поставили на сервер, исключения учитываются через пень-колоду. Что одним способом, что вторым. Помогите разобраться, что я делаю не так.
Код

//    var_dump($url_exceptions);

    $tmpl = preg_replace('#{openlink}.+?{/openlink}#', '', $row->text);

    preg_match_all("#<a(.+)>(.+)</a>#U", $tmpl, $mt);
    foreach ($mt[1] as $link)
    {
     preg_match_all("#(.*)href=([^ >]+)(.*)#", $link, $mt2);
        $url = $mt2[2][0];

        //обрезаем кавычки
        if (in_array($url{0},array('"',"'"))) $url = substr($url,1);
        if (in_array($url{strlen($url)-1},array('"',"'"))) $url = substr($url,0,strlen($url)-1);

        //проверяем на исключение и обрабатываем
        $full = $mosConfig_live_site . '/' . $url;
        $except = (in_array($url, $url_exceptions)) || (in_array($full, $url_exceptions));
        if (!$except)
        {
            $new_url = $mosConfig_live_site . '/index2.php?no_html=1&option=com_url&url=' . strrev(base64_encode($url));
            $row->text = str_replace($url, $new_url, $row->text);
//            echo 'Обработано: ' . $url . '<br>';
        } else {
//            echo 'Исключение: ' . $url . '<br>';
        }
    }

    //Удаляем теги из контента
    $row->text = str_replace('{openlink}', '', $row->text);
    $row->text = str_replace('{/openlink}', '', $row->text);



$url_exceptions - массив исключений. Элементы - строки.
$mosConfig_live_site - адрес сайта.
$row->text - это текст контента

--------------------
Смех смехом, а ОНА кверху мехом...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0989 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.