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

Форум Регулярные Выражения

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

 

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

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

тема: preg_erplace & base64_encode
 
 автор: f@ntom   (28.11.2010 в 17:54)   письмо автору
 
 

Доброго времени суток, помогите пожалуйста закодировать переменную url в base64

<?

preg_replace
('#((?:http|https):\/\/[^\s]+)#i','<a href="go.php?url=$1">$1</a>'$str); 

?>

  Ответить  
 
 автор: Саня   (28.11.2010 в 18:45)   письмо автору
 
   для: f@ntom   (28.11.2010 в 17:54)
 

Нужно использовать preg_replace_callback().

  Ответить  
 
 автор: f@ntom   (28.11.2010 в 20:36)   письмо автору
 
   для: Саня   (28.11.2010 в 18:45)
 


<?
$txt 
"http://www.google.com/search?client=opera&rls=ru&q=%D1%87%D1%81%D0%B8%D1%81%D0%BC%D0%B8&sourceid=opera&ie=utf-8&oe=utf-8";


function 
url($in){
return 
preg_replace_callback('#((\?\:http|https)\:\/\/[^\s]+)#i','url_replace',$in);
}

function 
url_replace($m){
return 
'<a href="go.php?url='.base64_encode($m[4]).'">'.$m[20].'</a>';
}


echo 
url_replace($txt);
?>


Извиняюсь за глупость, что я не правильно делаю )))

  Ответить  
 
 автор: Trianon   (28.11.2010 в 20:55)   письмо автору
 
   для: f@ntom   (28.11.2010 в 20:36)
 

навскидку два вопроса.
1. ограничение адреса в шаблоне - пробельный символ. В исходной строке никаких пробельных симворлов не видно.
2. откуда такие странные индексы массива результата $m[4] и $m[20] ?

  Ответить  
 
 автор: f@ntom   (28.11.2010 в 20:58)   письмо автору
 
   для: Trianon   (28.11.2010 в 20:55)
 

Метод тыка (((((((((((((

  Ответить  
 
 автор: f@ntom   (28.11.2010 в 21:24)   письмо автору
 
   для: f@ntom   (28.11.2010 в 20:58)
 


<?
function url($in){
    return 
preg_replace_callback('#((?:http|https):\/\/[^\s]+)#i','url_replace',$in);
}

function 
url_replace($m){
    return 
'<a href="go.php?url='.base64_encode($m[0]).'">'.$m[0].'</a>';
}


echo 
url($txt);
?>


Работает, спасибо )

  Ответить  
 
 автор: Николай2357   (28.11.2010 в 23:08)   письмо автору
 
   для: f@ntom   (28.11.2010 в 21:24)
 

Дырка тут.
<?
$txt 
'http://<script>alert(document.cookie)</script>';

  Ответить  
 
 автор: f@ntom   (28.11.2010 в 23:27)   письмо автору
 
   для: Николай2357   (28.11.2010 в 23:08)
 

Неа, html'ится )

  Ответить  
 
 автор: Николай2357   (28.11.2010 в 23:29)   письмо автору
 
   для: f@ntom   (28.11.2010 в 23:27)
 

где?

  Ответить  
Rambler's Top100
вверх

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